一、public
public
访问修饰符具有最大的访问权限,可以被所有的类访问,无论它们在同一个包还是不同的包中。- 如果一个类的成员(字段或方法)被声明为
public
,那么这个成员可以被任何其他类访问。
demo:
public class PublicClass {
public int publicField = 10;
public void publicMethod() {
System.out.println("这是一个public方法");
}
}
public class AccessPublicDemo {
public static void main(String[] args) {
PublicClass publicClass = new PublicClass();
System.out.println("公共字段值: " + publicClass.publicField); // 可以访问public字段
publicClass.publicMethod(); // 可以调用public方法
}
}
二、private
private
访问修饰符是最严格的访问级别,它只能在声明它的类内部访问。- 私有成员不能被同一个包中的其他类访问,也不能被不同包中的类访问。
demo:
public class PrivateClass {
private int privateField = 20;
private void privateMethod() {
System.out.println("这是一个private方法");
}
}
public class AccessPrivateDemo {
public static void main(String[] args) {
PrivateClass privateClass = new PrivateClass();
// System.out.println("私有字段值: " + privateClass.privateField); // 编译错误,不能访问private字段
// privateClass.privateMethod(); // 编译错误,不能调用private方法
}
}
三、protected
protected
访问修饰符允许在声明它的类内部、同一个包中的其他类以及不同包中的子类访问。- 如果一个成员(字段或方法)被声明为
protected
,它对包是可见的,并且对所有的子类也是可见的。
demo:
public class ProtectedClass {
protected int protectedField = 30;
protected void protectedMethod() {
System.out.println("这是一个protected方法");
}
}
public class AccessProtectedDemo extends ProtectedClass {
public static void main(String[] args) {
AccessProtectedDemo accessProtectedDemo = new AccessProtectedDemo();
System.out.println("保护字段值: " + accessProtectedDemo.protectedField); // 可以访问protected字段
accessProtectedDemo.protectedMethod(); // 可以调用protected方法
}
}
四、默认(没有修饰符)
- 如果没有访问修饰符(有时称为“包私有”),则该成员可以被同一包中的任何其他类访问,但不能被外部包中的类访问。
- 这是一种介于
public
和private
之间的访问级别。
demo:
class DefaultClass {
int defaultField = 40;
void defaultMethod() {
System.out.println("这是一个默认方法");
}
}
public class AccessDefaultDemo {
public static void main(String[] args) {
DefaultClass defaultClass = new DefaultClass();
System.out.println("默认字段值: " + defaultClass.defaultField); // 可以访问默认字段
defaultClass.defaultMethod(); // 可以调用默认方法
}
}
以上就是本次分享的所有内容,感兴趣的朋友点个关注呀,感谢大家啦~