公有类(public
类)
- 定义:使用
public
修饰符声明的类。 - 访问界限:
- 可以被任何包中的任何类访问。例如,有一个
public
类MyPublicClass
,在不同包中的其他类只要能正确导入(如果不在同一个包),就可以创建MyPublicClass
的实例,访问其public
成员。 - 一个 Java 源文件中最多只能有一个
public
类,并且该 Java 源文件的文件名必须与这个public
类的类名完全相同。
- 可以被任何包中的任何类访问。例如,有一个
默认访问修饰符(包级私有类)
- 定义:没有使用任何访问修饰符声明的类。
- 访问界限:
- 只能被同一个包中的其他类访问。例如,在
com.example.package1
包中有一个默认类MyPackagePrivateClass
,那么只有com.example.package1
包中的其他类可以访问它,其他包中的类无法访问。
- 只能被同一个包中的其他类访问。例如,在
私有成员(private
)
- 定义:使用
private
修饰符声明的类成员(属性或方法)。 - 访问界限:
- 只能在声明该成员的类内部被访问。例如,在类
MyClass
中有一个private
属性private int myPrivateField;
,只有MyClass
类的内部方法可以访问和修改myPrivateField
,其他类即使在同一个包中也无法直接访问。
- 只能在声明该成员的类内部被访问。例如,在类
保护成员(protected
)
- 定义:使用
protected
修饰符声明的类成员(属性或方法)。 - 访问界限:
- 同一个包中的其他类可以访问。例如,在
com.example.package1
包中有一个类MyClass
,其包含protected
方法protected void myProtectedMethod()
,那么com.example.package1
包中的其他类可以调用myProtectedMethod
。 - 不同包中的子类可以访问。例如,如果
com.example.package2
包中的SubClass
继承自com.example.package1
包中的MyClass
,那么SubClass
可以访问从MyClass
继承而来的protected
成员。
- 同一个包中的其他类可以访问。例如,在