1、private关键字意味着被定义的成员变量或者方法,只能在当前类中进行访问。其他途径都不能进行访问。如图我们定义一个那么属性,可以在setName中通过this.name进行赋值。
2、新建测试类,通过PrivateA.name的形式进行赋值,则报错。
3、default访问权限也称为友好的(Friendly)访问权限。即省略访问指示符,如图定义类另一个属性age.
4、在同一个包内,通过A.age = 25;进行访问赋值。看下输出
5、默认访问权限是在本包内和当前类中可以访问。我们看下在邻包中的访问。会提示不可见。
6、默认访问权限在子类中也是不可见的。
7、protected 关键字为我们引入了一种名为“继承”的概念,它以现有的类为基础,并在其中加入新的成员,同时不会对现有的类产生影响——我们将这种现有的类称为“基础类”或者“基本类”(Base Class)。亦可改变那个类现有成员的行为。对于从一个现有类的继承,我们说自己的新类“扩展”(extends)了那个现有的类。若新建一个包,并从另一个包内的某个类里继承,则唯一能够访问的成员就是原来那个包的public 成员。当然,如果在相同的包里进行继承,那么继承获得的包能够访问所有“友好”的成员。有些时候,基础类的创建者喜欢提供一个特殊的成员,并允许访问衍生类。这正是protected 的工作。
8、以上定义总结起来就是:protected 定义的成员变量或者方法,在类内部、子类,同包下可以访问。当然子类说的是当前包中,如果是其他包中的子类则报错。
9、使用public关键字时,它意味着紧随在public 后面的成员声明适用于所有人。这种也是我们最常用的。私有定义属性,提供public类型的getter 和setter方法。