欢迎访问宙启技术站
智能推送

Java函数的访问权限修饰符:public、protected、private与default的作用与区别

发布时间:2023-06-16 01:36:39

Java中的访问权限修饰符是用来控制类、方法、变量等成员的访问权限的,Java中一共有四种权限修饰符,分别是public、protected、private和default,本文主要介绍这四种权限修饰符的作用和区别。

1. public权限修饰符

public是Java中最高的访问权限修饰符,被修饰的成员可以被任何类、方法、变量等成员访问,即在任何地方都可以访问。通常情况下,public成员在外部类和外部包中都可以直接访问。

例如:

public class Test {

    public int num;

    public void display() {

        System.out.println("hello world!");

    }

}

在上面的代码中,Test类中的num和display()方法都被声明为public,因此其他类都可以直接访问它们。

2. protected权限修饰符

protected权限修饰符的作用范围比public要小一些,它所修饰的成员只能在当前类及其子类中访问,不能被其他类访问。如果想要在其他包中使用protected成员,必须通过继承的方式来实现。

例如:

public class Test {

    protected int num;

    protected void display() {

        System.out.println("hello world!");

    }

}

在上面的代码中,Test类中的num和display()方法都被声明为protected,因此只有Test类及其子类中可以直接访问它们。

3. private权限修饰符

private权限修饰符的作用范围比protected还要小,它所修饰的成员只能在当前类中访问,不能被其他类访问。如果想要在其他类中访问private成员,必须通过提供公共的访问方法来实现。

例如:

public class Test {

    private int num;

    private void display() {

        System.out.println("hello world!");

    }

    public int getNum() {

        return num;

    }

}

在上面的代码中,Test类中的num和display()方法都被声明为private,因此只有Test类中可以直接访问它们。为了让其他类访问num成员,我们通过提供公共的访问方法getNum()来实现。

4. default权限修饰符

default权限修饰符是Java中默认的访问权限修饰符,如果不使用任何权限修饰符,Java默认使用default权限修饰符。default权限修饰符只能在当前包中访问,无法跨包访问,如果想要在其他包中访问某个成员,必须通过继承的方式来实现。

例如:

class Test {

    int num;

    void display() {

        System.out.println("hello world!");

    }

}

在上面的代码中,Test类中的num和display()方法都没有使用任何权限修饰符,即被声明为default,因此只有当前包中的其他类可以访问它们。

总结:

1. public最高,能被所有类访问;

2. protected只能被继承的子类访问;

3. private只能在当前类中访问;

4. default只能在当前包中访问。