概念
- public:
(1)最大权限修饰符,对所有类可见。
(2)往往用于对外的情况,也就是对象或类对外的接口的一种形式。
(3)使用对象:类、接口、变量、方法。 - protected:
(1)对同一包内的类和所有子类可见(包括外包中的子类)。
(2)主要作用是保护子类,含义在于可以仅可以用来给它修饰的成员,相当于继承的含义
(3)使用对象:变量、方法,不可修饰类(外部类) - default:
(1)缺省,可不写,在同一包内可见
(2)是针对本包访问而设立,任何本包下的类、接口、异常等都可以相互访问,即便是父类没有用protected的成员也行
(3)使用对象:类、接口、变量、方法 - private:
(1)仅同一类中可见,使用对象:变量、方法。
(2)目的更多与封装本质类似,访问权限仅限于本类内部,不希望被任何外部的类访问
(3)不能修饰类(外部类)
关系
- 对于四类修饰符,他们之间可访问权限的大小依次为:public、protected、default、private
-
对于下列文件,四种修饰符在他们之间的可访问性会是下表所示(以FatherA为例)
文件关系
访问性 - 特别说明:protected对于不同包的访问性,其子类实例化后可以访问protected本类中方法,但不可访问其父类实例化后的protected方法
例子
-
这是一个具有private属性(名字)、公有方法(setName()、introduce())、protected方法(getName())的类
FatherA类 -
关于private
本包中其他类private受限 -
关于protected
本包中其他类protected可访问
外包子类protected受限
修改FtherA中introduce方法为public后可访问
-
关于default
default对本类外受限