Java小白入门到实战应用教程-权限修饰符

前言

在前面的内容中我们其实已经接触到了权限修饰符:public

在java中权限修饰符除了public外,还有private、protected、默认权限。

权限修饰符可用来修饰类、成员变量、方法(函数)。

其中修饰类只能用public和默认权限。

Java小白入门到实战应用教程-权限修饰符_java

这里我们可以看到如果用private修饰类报错了。


正文

权限修饰符定义了类、方法、变量等成员的访问权限,规定了谁可以访问这些成员,从而增强了代码的安全性、封装性和可维护性。

然后在前面的章节中我们已经学习了类、变量、方法以及包的相关概念及使用了,所以本节中我们结合之前学到的内容详细了解下权限修饰符。

下面分别讲解一下各个权限修饰符的作用以及各自的区别,。

  1. public:当一个成员被声明为public时,它可以被任何其他类访问,无论这些类是否在同一包中。这是最宽松的访问级别。
  2. private:private是最严格的访问级别。当一个成员被声明为private,它只能被定义它的类中的方法访问。其他类,即使是同一包中的类,也无法直接访问。
  3. protected:当一个成员被声明为protected,它不仅可以在定义它的类中访问,还可以被同一个包中的其他类和不同包中的子类访问。protected提供了一种机制,使得子类可以访问父类的某些成员,即使它们不在同一个包中。子类的概念之后我们在下一节中详细讲解。
  4. 默认权限(package-private):如果没有指定任何权限修饰符,则成员具有默认权限,也称为包权限或包私有。这表示成员只能在定义它的类所在的包内被访问。这是一种介于publicprivate之间的访问级别,适合于那些希望在包内公开但在包外隐藏的成员。

使用

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("默认权限的函数");
    }
}

注意:权限修饰符修饰变量只能修饰成员变量,不能修饰局部变量。

权限修饰符也可以修饰构造函数。