不积跬步,无以至千里;不积小流,无以成江海。
Java语言基础
Java访问修饰符
| 访问修饰符 | 同类 | 同包 | 不同包,子类 | 不同包,非子类 |
| public | √ | √ | √ | √ |
| protected | √ | √ | √ | |
| 默认 | √ | √ | ||
| private | √ |
package study;
public class Test {
public void print() {
System.out.println("public方法!");
}
protected void print1() {
System.out.println("protected方法!");
}
void print2() {
System.out.println("默认方法!");
}
private void print3() {
System.out.println("privated方法!");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Test test = new Test();
test.print();
test.print1();
test.print2();
test.print3();
}
}
程序输出:
public方法! protected方法! 默认方法! privated方法!
package study;
public class Test {
public void print() {
System.out.println("public方法!");
}
protected void print1() {
System.out.println("protected方法!");
}
void print2() {
System.out.println("默认方法!");
}
private void print3() {
System.out.println("privated方法!");
}
}
class Son extends Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Son son = new Son();
son.print();
son.print1();
son.print2();
son.print3();//这里提示错误,程序无法执行。
}
}
package study;
public class Test {
public void print() {
System.out.println("public方法!");
}
protected void print1() {
System.out.println("protected方法!");
}
void print2() {
System.out.println("默认方法!");
}
private void print3() {
System.out.println("privated方法!");
}
}
class Other {
public static void main(String[] args) {
// TODO Auto-generated method stub
Test test = new Test();
test.print();
test.print1();
test.print2();
test.print3();//这里提示错误,程序无法执行。
}
}
package study;
public class Test {
public void print() {
System.out.println("public方法!");
}
protected void print1() {
System.out.println("protected方法!");
}
void print2() {
System.out.println("默认方法!");
}
private void print3() {
System.out.println("privated方法!");
}
}
package study1;
import study.*;
public class Son1 extends Test{
public static void main(String[] args) {
// TODO Auto-generated method stub
Son1 son1 = new Son1();
son1.print();
son1.print1();
son1.print2();//程序错误,无法执行。
son1.print3();//程序错误,无法执行。
}
}
package study;
public class Test {
public void print() {
System.out.println("public方法!");
}
protected void print1() {
System.out.println("protected方法!");
}
void print2() {
System.out.println("默认方法!");
}
private void print3() {
System.out.println("privated方法!");
}
}
package study1;
import study.*;
public class Son1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Test test = new Test();
test.print();
test.print1();//程序错误,无法执行。
test.print2();//程序错误,无法执行。
test.print3();//程序错误,无法执行。
}
}
注意:所说的同一个包或者不同包,指的是编译后的class文件是否在同一个文件夹里。
博客借鉴:https://blog.csdn.net/u013771764/article/details/81226908
原文:https://www.cnblogs.com/smilexuezi/p/11934411.html