Java中有private和protected两种访问修饰符,它们用于控制类的成员(字段和方法)的可见性和访问权限。private修饰符表示成员仅在当前类内部可见,而protected修饰符表示成员在当前类及其子类内部可见。
private修饰符用于限制成员的访问范围,使其仅在当前类内部可见。这意味着其他类无法直接访问被private修饰的成员。例如:public class MyClass { private int privateVar; public void setPrivateVar(int value) { privateVar = value; } public int getPrivateVar() { return privateVar; }}public class Main { public static void main(String[] args) { MyClass obj = new MyClass(); obj.setPrivateVar(10); System.out.println(obj.getPrivateVar()); // 输出:10 }}在上面的例子中,privateVar字段被private修饰,因此无法在MyClass类之外直接访问。为了访问和修改privateVar的值,我们需要使用公共方法setPrivateVar和getPrivateVar。protected修饰符用于限制成员的访问范围,使其在当前类及其子类内部可见。这意味着其他类和包中的类无法直接访问被protected修饰的成员,但子类可以访问。例如:public class MyBaseClass { protected int protectedVar; protected void protectedMethod() { System.out.println("This is a protected method."); }}public class MyDerivedClass extends MyBaseClass { public void accessProtectedMember() { protectedVar = 10; System.out.println(protectedVar); // 输出:10 protectedMethod(); // 输出:This is a protected method. }}public class Main { public static void main(String[] args) { MyDerivedClass obj = new MyDerivedClass(); obj.accessProtectedMember(); }}在上面的例子中,MyBaseClass类中的protectedVar字段和protectedMethod方法被protected修饰,因此只能在MyBaseClass及其子类中访问。在MyDerivedClass中,我们可以直接访问和修改protectedVar的值,并调用protectedMethod方法。private和protected的区别尽管private和protected修饰符都用于限制成员的访问范围,但它们之间有一些重要的区别。1. 可见性范围:private成员仅在当前类内部可见,而protected成员在当前类及其子类内部可见。2. 访问权限:private成员不可被其他类直接访问,而protected成员可以在子类中直接访问。3. 继承性:private成员不可被继承,而protected成员可以被继承。Java中的private和protected修饰符用于限制成员的可见性和访问权限。private修饰符表示成员仅在当前类内部可见,而protected修饰符表示成员在当前类及其子类内部可见。这些修饰符提供了更好的封装性和继承性,有助于构建安全和可维护的代码。在编写Java程序时,我们应根据需要选择适当的访问修饰符来控制成员的可见性,以确保代码的安全性和可靠性。