在Java中,类的访问权限主要有四种:public、protected、默认(无修饰符)和private。这些访问权限决定了类、变量、方法和构造函数的可见性范围。
public:public访问权限是最宽松的,表示该类、方法或变量可以从任何地方访问。当一个类被声明为public时,其他任何类都可以直接实例化这个类或者访问它的public方法和变量。
protected:protected访问权限介于public和默认之间。表示该类、方法或变量可以被同一个包内的其他类访问,以及所有子类(无论是否在同一个包内)访问。如果一个类是protected的,那么它可以被同一个包内的其他类以及所有子类访问。
默认(无修饰符):当类、方法或变量没有指定访问权限时,它们的访问权限默认为默认。这意味着它们只能在同一个包内的其他类访问。这种访问权限适用于只在同一个包内使用的类、方法和变量。
private:private访问权限是最严格的,表示该类、方法或变量只能在声明它的类内部访问。私有成员不能被外部类访问,也不能被子类继承。通常,对于不希望被外部访问的成员(如实现细节),我们会使用private修饰符。
以下是一个简单的示例,展示了不同访问权限的类定义:
// public类
public class PublicClass {
public int publicVar;
protected int protectedVar;
int defaultVar;
private String privateVar = "default";
}
// 默认访问权限类
class DefaultClass {
int defaultVar;
}
// 子类
class SubClass extends PublicClass {
void accessMembers() {
// 可以访问父类的public和protected成员
publicVar = 1;
protectedVar = 2;
// 无法访问父类的defaultVar和privateVar
}
}