java的访问控制符分为两类:类的访问控制符,属性和方法的访问控制符。
1. 类的访问控制符有两种:public, default(默认的,什么都不用写)
default就是包内访问控制符。
当然对于内部类还可以有static修饰,而用static修饰的内部类叫作嵌套类。
2. 属性和方法的访问控制符有四种:private, default, protected, public
可以用如下的表描述:(Yes表示可访问,空表示不可访问)
作用:变量, 方法上的修饰
1 package com.gxa.day8.am; 2 3 import com.gxa.day8.DefaultSample; 4 import com.gxa.day8.PrivateSample; 5 import com.gxa.day8.ProtectedSample; 6 import com.gxa.day8.PublicSample; 7 8 /** 9 * AccessSample来完成对访问修饰符的测试 10 * 1. private 只有在本类可以访问 11 * 2. 默认 可以在本类和同一包下访问 12 * 3. protected 可以在本类,同一个包, 不同包的子类访问 13 * 4. public 可以在本类,同一个包,不同的子类,没有任何继承关系下都可以访问 14 * @author caleb 15 * 16 */ 17 public class AccessSample extends ProtectedSample { 18 19 public void m01() { 20 this.name = ""; //访问的ProtectedSample下的name(有继承关系不同包name属性) 21 } 22 23 public static void main(String[] args) { 24 PrivateSample privateSample = new PrivateSample(); 25 privateSample.name = ""; //不能访问private修饰的name 26 27 DefaultSample defaultSample = new DefaultSample(); 28 defaultSample.name = ""; //不能访问不同一个包下的name 29 30 ProtectedSample protectedSample = new ProtectedSample(); 31 protectedSample.name = ""; //不能访问, 因为只能通过继承关系直接访问, 不能创建来访问 32 33 PublicSample publicSample = new PublicSample(); 34 publicSample.name = ""; //访问的PublicSample的下的name 35 } 36 } |
注意事项
java面向对象的封装性对以后做程序很有帮助,可以在实际操作项目中锻炼学习。
最好不要图方便一直用public而失去了封装的意义。