JAVA_SE基础——59.权限访问修饰符

了解了包的概念,就可以系统的介绍Java中的访问控制级别。在Java中,针对类、成员方法和属性提供了四种访问级别,分别是private、default、protected和public。


权限访问修饰符(权限从大到小依次往右排)
  public(公共) protected(受保护) default(缺省) private(私有)
同一个类
同一个包 ×
子父类 × ×
不同包 × × ×

public 和 private 在这里我就不一一介绍了,想必大家比我还熟悉了吧。
还有protected和default 在同一个类中  我也不验证了(因为最小权限的private都可以在同一个类中互相访问,这两个也肯定可以了)



验证protected修饰的属性 在同一个包能不能被访问。:
package d;
class Demo7 {
	
		protected int a = 1 ;
	
}
package d;
public class Demo8 {
	public static void main(String[] args) {
		Demo7 z = new Demo7();
		System.out.println("a="+z.a);
	}
}
运行结果:

能访问的到!

验证default(缺省)修饰的属性 在同一个包能不能被访问。:

package d;
class Demo7 {
	int a = 1 ;	
}
package d;
public class Demo8 {
	public static void main(String[] args) {
		Demo7 z = new Demo7();
		System.out.println("a="+z.a);
	}
}
运行结果:


能访问的到!


验证protected修饰的属性 在子父类中能不能被访问。:
package d;
class Demo7 {
	protected int a = 1 ;	
}
package d;
public class Demo8 extends Demo7 {
	public static void main(String[] args) {
		Demo8 z = new Demo8();
		System.out.println("a="+z.a);
	}
}
运行结果:


能访问的到!


验证default(缺省)修饰的属性 在子父类中能不能被访问。:

package d;
class Demo7 {
	int a = 1 ;	
}
package e;
import d.*;
public class Demo8 extends Demo7 {
	public static void main(String[] args) {
		Demo8 z = new Demo8();
		System.out.println("a="+z.a);
	}
}
运行结果:


不能访问的到!

验证protected修饰的属性 在不同包中能不能被访问。:
package d;
class Demo7 {
	protected int a = 1 ;	
}
package e;
import d.*;
public class Demo8{
	public static void main(String[] args) {
		Demo7 z = new Demo7();
		System.out.println("a="+z.a);
	}
}
运行结果:


不能访问的到!

验证default(缺省)修饰的属性 在不同包中能不能被访问。:

package d;
class Demo7 {
	int a = 1 ;	
}
package e;
import d.*;
public class Demo8{
	public static void main(String[] args) {
		Demo7 z = new Demo7();
		System.out.println("a="+z.a);
	}
}
运行结果:

不能访问的到!


交流企鹅:654249738,和自学者交流群:517284938

原文地址:https://www.cnblogs.com/Jhaiha0/p/8465282.html