Java小白入门到实战应用教程-权限修饰符
前言
在前面的内容中我们其实已经接触到了权限修饰符:public
在java中权限修饰符除了public外,还有private、protected、默认权限。
权限修饰符可用来修饰类、成员变量、方法(函数)。
其中修饰类只能用public和默认权限。
这里我们可以看到如果用private修饰类报错了。
正文
权限修饰符定义了类、方法、变量等成员的访问权限,规定了谁可以访问这些成员,从而增强了代码的安全性、封装性和可维护性。
然后在前面的章节中我们已经学习了类、变量、方法以及包的相关概念及使用了,所以本节中我们结合之前学到的内容详细了解下权限修饰符。
下面分别讲解一下各个权限修饰符的作用以及各自的区别,。
- public:当一个成员被声明为
public
时,它可以被任何其他类访问,无论这些类是否在同一包中。这是最宽松的访问级别。 - private:
private
是最严格的访问级别。当一个成员被声明为private
,它只能被定义它的类中的方法访问。其他类,即使是同一包中的类,也无法直接访问。 - protected:当一个成员被声明为
protected
,它不仅可以在定义它的类中访问,还可以被同一个包中的其他类和不同包中的子类访问。protected
提供了一种机制,使得子类可以访问父类的某些成员,即使它们不在同一个包中。子类的概念之后我们在下一节中详细讲解。 - 默认权限(package-private):如果没有指定任何权限修饰符,则成员具有默认权限,也称为包权限或包私有。这表示成员只能在定义它的类所在的包内被访问。这是一种介于
public
和private
之间的访问级别,适合于那些希望在包内公开但在包外隐藏的成员。
使用
public class Demo {
//定义一个默认权限的变量
int a = 1;
//定义一个public权限的变量
public int b = 2;
//定义一个protected权限的变量
protected int c = 3;
//定义一个private权限的变量
private int d = 4;
//定义不同权限的方法
public void testPublic(){
System.out.println("public的函数");
}
protected void testProtected(){
System.out.println("protected的函数");
}
private void testPrivate(){
System.out.println("private的函数");
}
void test(){
System.out.println("默认权限的函数");
}
}
注意:权限修饰符修饰变量只能修饰成员变量,不能修饰局部变量。
权限修饰符也可以修饰构造函数。