java四种访问权限private、public、protected、default清晰解析

修饰词:根据作用范围来进行划分

private 默认的(default/friendly) protected public
同一个类中 可见 可见 可见 可见
同一个包中 不可见 可见 可见 可见
不同的包中有继承关系 不可见 不可见 可见 可见
不同的包中没有继承关系 不可见 不可见 不可见 可见

四种访问权限:

1.public:只能修饰类、方法(含构造方法)、成员变量。其修饰的部分所有人都能访问;

2.默认修饰符default(friendly):只能修饰类、方法(含构造方法)、成员变量。其修饰的部分只有同一包内的类能访问,对于这个包之外的所有类,这个成员是private的;

3.private:只能修饰方法(含构造方法)、成员变量。其修饰的部分只能在自身类中访问。例如将某类的构造方法设置为private, 那么在其它类中就不能调用“new”来创建该类的实例,通常在该类中会对外提供一种方法,该方法能返回该类的实例;
再例如我们经常将成员变量设置为private的,对外提供set/get方法对其进行访问,在set/get方法中可做一些比如权限检测等操作, 而不是将域直接暴露给所有用户;

4.protected:只能修饰方法(含构造方法)、成员变量。
在同一包中具有包访问权限,相当于默认访问权限;
注意事项:在子类中,可继承不同包内父类的protected方法和属性,也只能在该子类中访问(除非重写方法或属性)

猜你喜欢

转载自blog.csdn.net/dz77dz/article/details/81635250
今日推荐