📜  Java的私有与受保护与最终访问修饰符(1)

📅  最后修改于: 2023-12-03 14:43:03.029000             🧑  作者: Mango

Java的私有、受保护和最终访问修饰符

在Java中,访问修饰符用于控制类、方法、变量和构造函数的访问级别。私有(private)和受保护(protected)是两种常见的访问修饰符,而最终(final)是一种特殊修饰符,用于限制类、方法和变量的修改和继承。

私有访问修饰符(private)

私有访问修饰符用于限制访问范围,在类中声明的私有成员只能在同一个类中访问,其他类无法访问。私有访问修饰符通常用于隐藏实现细节和保护数据安全。

public class MyClass {
    private int privateVariable;

    private void privateMethod() {
        // 私有方法的实现
    }
}
受保护访问修饰符(protected)

受保护访问修饰符允许同一个包中的类和子类访问被修饰的成员。受保护访问修饰符常用于在继承关系中保护成员变量和方法。

public class ParentClass {
    protected int protectedVariable;

    protected void protectedMethod() {
        // 受保护方法的实现
    }
}

public class ChildClass extends ParentClass {
    public void accessProtectedMember() {
        // 子类可以访问受保护的成员
        int value = protectedVariable;
        protectedMethod();
    }
}
最终访问修饰符(final)

最终访问修饰符可以用于类、方法和变量。当一个类被声明为最终时,该类无法被其他类继承。当一个方法被声明为最终时,该方法无法被子类重写。当一个变量被声明为最终时,该变量的值无法被修改。

public final class FinalClass {
    // 最终类的实现
}

public class ParentClass {
    public final void finalMethod() {
        // 最终方法的实现
    }
}

public class ChildClass extends ParentClass {
    // 无法重写最终方法 finalMethod()
}

最终访问修饰符还可以用于局部变量,表示该变量在初始化后值不可修改。

public void doSomething() {
    final int x = 5; // 声明一个最终变量
    x = 10; // 编译错误,无法修改最终变量的值
}

总结:

  • 私有访问修饰符(private)限制成员只能在同一个类中访问。
  • 受保护访问修饰符(protected)允许同一个包中的类和子类访问。
  • 最终访问修饰符(final)限制类的继承、方法的重写以及变量的修改。