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

前言

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

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

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

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

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("默认权限的函数");
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.

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

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