Java的四种权限修饰符
| public > | protected > | (default) > | private | |
|---|---|---|---|---|
| 同一个类(我自己) | YES | YES | YES | YES |
| 同一个包(我邻居) | YES | YES | YES | NO |
| 不同包子类(我儿子) | YES | YES | NO | NO |
| 不同包非子类(陌生人) | YES | NO | NO | NO |
注意事项:(default)并不是关键字“default”,而是根本不写。
- /同一个类(我自己)/
package src.cn.itcast.day11.demo02;
public class MyClass {
public int num = 10;
public void method() {
System.out.println(num);
}
}
- /同一个包(我邻居)/
package src.cn.itcast.day11.demo02;
public class MyClass {
//修饰符[public] [protected] [(default)] 都可以访问,修饰符[private]则不能访问MyAnother类
private int num = 10;
public void method() {
System.out.println(num);
}
}
package src.cn.itcast.day11.demo02;
public class MyAnother {
public void anotherMethod() {
// System.out.println(new MyClass().num);
}
}
- /不同包子类(我儿子)/
package src.cn.itcast.day11.demo02;
public class MyClass {
//修饰符[public] [protected] 都可以访问,[(default)] [private] 不能访问子类MySon
public int num = 10;
public void method() {
System.out.println(num);
}
}
package src.cn.itcast.day11.demo02.sub;
import src.cn.itcast.day11.demo02.MyClass;//需要导包
public class MySon extends MyClass {
public void methodSon() {
// System.out.println(super.num);
}
}
- /不同包非子类(陌生人)/
package src.cn.itcast.day11.demo02;
public class MyClass {
public int num = 10;
public void method() {
System.out.println(num);
}
}
package src.cn.itcast.day11.demo02.sub;
import src.cn.itcast.day11.demo02.MyClass;
public class Stranger {
public void methodStrange() {
System.out.println(new MyClass().num);
}
}

浙公网安备 33010602011771号