000-Java 访问修饰符-访问权限
简介
Java 访问权限修饰符有四个:public 、protected 、默认修饰符 、private
修饰符 | public | protected | 默认修饰符 | private |
---|---|---|---|---|
类 | √ | √ | √ | √ |
同包 | √ | √ | √ | × |
不同包的子类 | √ | √ | × | × |
不同包的非子类 | √ | × | × | × |
public:所修饰的类、变量、方法,在内外包均具有访问权限,Public(公有)访问权限较为宽松的一种,不仅可以被跨类访问,而且可以跨包访问。
protected:这种权限是为继承而设计的。
- protected 所修饰的成员(包括成员变量个成员方法),对所有子类是可访问的,但只对同包的类是可访问的,对外包的非子类是不可以访问。
- 若子类与基类(父类)不在同一包中,那么在子类中,只有子类实例可以访问其从父类继承来的 protected 方法,而在子类中不能访问父类实例(对象)(所调用)的 protected 方法。
default(包访问权限):只对同包的类具有访问的权限,外包的所有类都不能访问,default(默认访问权限“或者“包访问权限”)在默认的模式下,不需要为某个类,方法添加任何访问修饰符。但这类方式声明方法只允许在同一个包内是可访问的。
private:私有的权限,可以用来修饰成员(成员变量,成员方法)。
- private 是访问权限较为严格的修饰符。被 private 修饰的成员,只能在本类进行访问。
- 需要说明的是,类和接口的访问方式是不能被声明为私有的。
- private 修饰的成员变量,如果需要被其他类使用,提供相应的操作
- 提供
get变量名()
方法,用于获取成员变量的值,方法用 public 修饰 - 提供
set变量名(参数)
方法,用于设置成员变量的值,方法用 public 修饰
- 提供
注意:要区分开 protected 权限、包访问权限,正确使用它们;
- 当某个成员能被所有的子类继承,但不能被外包的非子类访问,用 protected;
- 当某个成员的访问权限只对同包的类开放,包括不能让外包的类继承这个成员,用 default;
000-Java 访问修饰符-访问权限
https://flepeng.github.io/021-Java-01-course-000-Java-访问修饰符-访问权限/