在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 } }