📜  显示不同访问级别的Java程序(1)

📅  最后修改于: 2023-12-03 15:40:10.417000             🧑  作者: Mango

显示不同访问级别的 Java 程序

在 Java 中,有四种访问修饰符,分别为 publicprotecteddefaultprivate,它们用于定义类、变量、方法和构造函数的可见性,下面我们将分别演示这些修饰符的用法。

public

在 Java 中,public 访问修饰符是最高级别的访问修饰符,用于表示被修饰的类、变量、方法和构造函数可以被任何地方的代码访问,下面是一个简单的示例程序:

public class PublicExample {
    public String publicVariable = "public variable";

    public void publicMethod() {
        System.out.println("This is a public method.");
    }

    public PublicExample() {
        System.out.println("This is a public constructor.");
    }
}

在该程序中,我们定义了一个名为 PublicExample 的类,并为该类定义了一个名为 publicVariable 的公共变量、一个名为 publicMethod() 的公共方法和一个名为 PublicExample() 的公共构造函数。这些公共属性和方法可以被程序中的任何位置进行访问:

PublicExample publicExample = new PublicExample();
System.out.println(publicExample.publicVariable);
publicExample.publicMethod();
protected

在 Java 中,protected 访问修饰符用于表示被修饰的类、变量、方法和构造函数可以被其子类访问,以及同一个包中的其他类访问,下面是一个简单的示例程序:

public class ProtectedExample {
    protected String protectedVariable = "protected variable";

    protected void protectedMethod() {
        System.out.println("This is a protected method.");
    }

    protected ProtectedExample() {
        System.out.println("This is a protected constructor.");
    }
}

在该程序中,我们定义了一个名为 ProtectedExample 的类,并为该类定义了一个名为 protectedVariable 的受保护变量、一个名为 protectedMethod() 的受保护方法和一个名为 ProtectedExample() 的受保护构造函数。这些受保护属性和方法只能被其子类和同一个包中的其他类访问:

class ChildClass extends ProtectedExample {
    public void childMethod() {
        System.out.println(protectedVariable); // 子类继承了父类的受保护属性
        protectedMethod(); // 子类可以调用父类的受保护方法
    }
}

ProtectedExample protectedExample = new ProtectedExample();
ChildClass childClass = new ChildClass();
System.out.println(protectedExample.protectedVariable); // 受保护变量只能在子类或同一个包中访问
childClass.childMethod();
default

在 Java 中,如果没有使用任何访问修饰符,则被修饰的类、变量、方法和构造函数会被默认设置为 default 访问修饰符,也称为包级别访问控制。此时,这些属性和方法只能被同一个包中的其他类访问,无法被其他包中的类访问,下面是一个简单的示例程序:

class DefaultExample {
    String defaultVariable = "default variable";

    void defaultMethod() {
        System.out.println("This is a default method.");
    }

    DefaultExample() {
        System.out.println("This is a default constructor.");
    }
}

DefaultExample defaultExample = new DefaultExample();
System.out.println(defaultExample.defaultVariable); // 同一个包中的其他类可以访问默认属性和方法
defaultExample.defaultMethod();
private

在 Java 中,private 访问修饰符用于表示被修饰的类、变量、方法和构造函数只能在其所属的类中进行访问,其他任何地方的代码都无法访问。下面是一个简单的示例程序:

public class PrivateExample {
    private String privateVariable = "private variable";

    private void privateMethod() {
        System.out.println("This is a private method.");
    }

    private PrivateExample() {
        System.out.println("This is a private constructor.");
    }
}

PrivateExample privateExample = new PrivateExample();
System.out.println(privateExample.privateVariable); // 私有变量只能在所属的类中访问
privateExample.privateMethod();

需要注意的是,private 访问修饰符不允许子类、同一个包中的其他类以及其他任何地方的代码访问受限制的属性和方法。除非提供公共方法,否则这些属性和方法是私有的,不能从外部进行访问。

以上就是 Java 中不同访问级别的示例程序,帮助您更好地理解这些访问修饰符的用法。