📜  Java中公共,私有和受保护修饰符之间的区别? - Java (1)

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

Java中公共、私有和受保护修饰符之间的区别

在Java语言中,有三种访问修饰符:公共(public)、私有(private)和受保护(protected)。这些修饰符决定了类、方法和变量的可见性,而这种可见性对于软件设计和实现非常关键。

公共(public)

公共修饰符是最广泛的可见度修饰符。如果使用公共修饰符声明一个类、方法或变量,这些元素就可以从任何地方访问。这意味着,公共的元素对于其他类和模块来说是完全可见的。例如:

public class MyClass {
    public void myMethod() {
        System.out.println("This method is public");
    }
}

在这个例子中,类MyClass和它的方法myMethod都是公共的,因此它们可以被其他类和模块访问。

私有(private)

私有修饰符是最高限度的可见度修饰符。当我们使用私有修饰符声明一个类、方法或变量时,这些元素只能在声明它们的类内部访问。这意味着,私有的元素对于其他类和模块是不可见的。例如:

public class MyClass {
    private int myInt;
    
    private void myMethod() {
        System.out.println("This method is private");
    }
    
    public void accessMyInt() {
        System.out.println("The value of myInt is " + myInt);
    }
}

在这个例子中,变量myInt和方法myMethod都是私有的,因此它们只能在类MyClass内部访问。为了访问myInt变量,我们需要定义一个公共的方法accessMyInt。

受保护(protected)

受保护修饰符介于公共和私有之间。当我们使用受保护修饰符声明一个类、方法或变量时,这些元素可以在声明它们的类及其子类内部访问。这意味着,受保护的元素对于其他类和模块来说是不可见的,但是它们对于同一个继承层级内的子类是可见的。例如:

public class MyClass {
    protected int myInt;
    
    protected void myMethod() {
        System.out.println("This method is protected");
    }
}

public class MyChildClass extends MyClass {
    public void accessMyInt() {
        System.out.println("The value of myInt is " + myInt);
    }
}

在这个例子中,变量myInt和方法myMethod都是受保护的。在类MyChildClass中,我们可以通过继承的方式访问myInt变量,因此我们可以定义一个公共的方法accessMyInt来访问它。

总之,Java中的访问修饰符的作用是确保代码的可见性和访问权限。通过合理地使用公共、私有和受保护修饰符,我们可以更好地控制代码的访问权限,提高代码的健壮性和可维护性。