访问权限控制

java通过修饰符来控制类、属性和方法的访问权限和其他功能,通常放在语句的最前端。

访问修饰符也叫访问控制符,是指能够控制类、成员变量、方法的使用权限的关键字。
在面向对象编程中,访问控制符是一个很重要的概念,可以使用它来保护对类、变量、方法和构造方法的访问。

java支持四种不同的访问控制权限:public,protected,private,default
private<default<protected<public ,这四种访问控制权限的定义如下:

public:公有的

public是最为宽松的一种访问权限,被声明为public的类、方法、构造方法和接口能够被任何其他类访问。
一个java文件中最多只能有一个public类,并且该类与该java文件的名称完全一致)。
Java程序的main() 方法必须设置成公有的,否则,Java解释器将不能运行该类。
如果几个相互访问的public类分布在不同的包中,则需要导入相应public类所在的包。由于类的继承性,类所有的公有方法和变量都能被其子类继承。

protected:受保护的

被声明为protected的变量、方法和构造方法能被同一个包中的任何其他类访问。
在不同包中,只有子类能访问父类中的protected权限。

private:私有的

私有访问修饰符是最严格的访问级别,所有被声明为private的方法、变量和构造方法只能被所属类访问,对类的外部不可见。
声明为私有访问类型的变量只能通过类中公共的Getter/Setter方法被外部类访问。
private访问修饰符的使用主要用来隐藏类的实现细节和保护类的数据。

默认的:不使用任何关键字

不使用任何修饰符声明的属性和方法,对同一个包内的类是可见的。接口里的变量都隐式声明为public static final,而接口里的方法默认情况下访问权限为public。

访问权限控制

请注意以下方法继承的规则:
—父类中声明为public的方法在子类中也必须为public。
—父类中声明为protected的方法在子类中要么声明为protected,要么声明为public。不能声明为private。
—父类中默认修饰符声明的方法,能够在子类中声明为private。
—父类中声明为private的方法,不能够被继承。

如何使用访问控制符
访问控制符可以让我们很方便的控制代码的权限:
1.当需要让自己编写的类被所有的其他类访问时,就可以将类的访问控制符声明为 public。
2.当需要让自己的类只能被自己的包中的类访问时,就可以省略访问控制符。
3.当需要控制一个类中的成员数据时,可以将这个类中的成员数据访问控制符设置为 public、protected,或者省略。