在Java中,访问修饰符(Access Modifiers)用于限定类、变量、方法和构造方法的访问范围。Java提供了四种访问修饰符,分别是public
、protected
、default
(包内可见,没有关键字)、private
。这些修饰符决定了一个类的成员在其他类中是否可见和可访问。
以下是对每个访问修饰符的简要介绍:
public(公共访问修饰符):
- 可以被任何类访问,无访问限制。
- 适用于类、接口、变量、方法。
示例:
public class MyClass { public int myPublicVar; public void myPublicMethod() { // 方法体 } }
protected(受保护访问修饰符):
- 可以被同一包内的类访问,以及子类访问。
- 适用于变量、方法,但不适用于顶级类(即不可修饰类)。
示例:
class MyParentClass { protected int myProtectedVar; protected void myProtectedMethod() { // 方法体 } } class MyChildClass extends MyParentClass { void accessProtectedVarAndMethod() { myProtectedVar = 42; myProtectedMethod(); } }
default(默认访问修饰符):
- 当没有指定访问修饰符时,成员默认为包内可见。
- 可以被同一包内的类访问,但不能被其他包的类访问。
- 适用于类、接口、变量、方法。
示例:
class DefaultAccessClass { int myDefaultVar; void myDefaultMethod() { // 方法体 } }
private(私有访问修饰符):
- 最小的访问级别,只能在声明它的类内访问。
- 适用于变量和方法,但不适用于顶级类。
示例:
public class MyClass { private int myPrivateVar; private void myPrivateMethod() { // 方法体 } }
访问修饰符的选择取决于设计和安全性的需求。通常来说,应该尽量使用最小的访问级别,以保持封装性和安全性。