Java中有四种访问级别修饰符,分别为public、private、protected和默认访问级别。它们控制着类、变量、方法以及构造函数的访问权限。
下面是每种访问级别的详细介绍:
1.public
public表示公共访问级别,它指定的类、方法、变量和构造函数可以被任何类访问。在其他类中,可以通过类对象调用公共方法和访问公共变量。
public class MyClass {
public int myPublicVariable;
public void myPublicMethod() {
// ...
}
}
2.private
private表示私有访问级别,它指定的类、方法、变量和构造函数只能在同一个类中访问。私有变量和方法不会被其他类看到或访问。
public class MyClass {
private int myPrivateVariable;
private void myPrivateMethod() {
// ...
}
}
3.protected
protected表示受保护的访问级别,它指定的类、方法、变量和构造函数只能在同一个包或继承它的子类中访问。在其他包中,只能通过子类对象访问受保护的成员。
public class MyClass {
protected int myProtectedVariable;
protected void myProtectedMethod() {
// ...
}
}
4.默认访问级别
默认访问级别指定的类、方法、变量和构造函数只能在同一个包中访问。在其他包中,无法访问默认访问级别的成员。
class MyClass {
int myDefaultVariable;
void myDefaultMethod() {
// ...
}
}
以下是一个Java程序演示访问级别的用法:
// 定义一个类
public class MyClass {
// 私有变量,只能在类内部访问
private int privateVar;
// 公有变量,可以在任何地方访问
public int publicVar;
// 保护变量,只能在同一包中或子类中访问
protected int protectedVar;
// 默认访问级别,只能在同一包中访问
int defaultVar;
// 构造函数,可以访问所有访问级别的变量
public MyClass() {
privateVar = 1;
publicVar = 2;
protectedVar = 3;
defaultVar = 4;
}
// 私有方法,只能在类内部调用
private void privateMethod() {
System.out.println("私有方法");
}
// 公有方法,可以在任何地方调用
public void publicMethod() {
System.out.println("公有方法");
}
// 保护方法,只能在同一包中或子类中调用
protected void protectedMethod() {
System.out.println("保护方法");
}
// 默认访问级别的方法,只能在同一包中调用
void defaultMethod() {
System.out.println("默认方法");
}
}
在上面的示例中,我们定义了一个名为MyClass的类,其中包含四个不同访问级别的变量和四个不同访问级别的方法。此外,我们还定义了一个公有构造函数,该构造函数可以访问所有访问级别的变量。
在Java中,访问级别控制了类、变量和方法的可见性。这有助于确保代码的封装性和安全性。例如,将变量设置为私有变量可以防止其他代码直接访问或修改该变量,从而确保数据的完整性和安全性。
可以在其他类中创建MyClass的对象并调用其公有方法和公有变量,但不能直接访问其私有变量或私有方法。此外,在同一包中或MyClass的子类中可以访问protected和default变量和方法,但不能在其他地方访问它们。