网站外链建设设计,广州建设网站是什么样的,wordpress 福利模板,网站开发网站建设公司在 Java 中#xff0c;访问修饰符#xff08;Access Modifiers#xff09;用于控制类、方法、变量和构造器的访问权限。Java 提供了四种访问修饰符#xff0c;分别是#xff1a;
publicprotecteddefault#xff08;包私有#xff0c;没有显式修饰符#xff09;private…在 Java 中访问修饰符Access Modifiers用于控制类、方法、变量和构造器的访问权限。Java 提供了四种访问修饰符分别是
publicprotecteddefault包私有没有显式修饰符private
public
访问范围最大范围的访问权限。作用 被 public 修饰的类、方法、变量或构造器可以在任何地方访问。如果类是 public则类名必须与文件名一致。
public class MyClass {public int myVar;public void myMethod() {System.out.println(Public Method);}
}protected
访问范围 同一包内的类可以访问。不同包中的子类可以访问。 作用 主要用于继承场景允许子类访问父类的成员。
package com.example;public class Parent {protected int myVar;protected void myMethod() {System.out.println(Protected Method);}
}package com.another;import com.example.Parent;public class Child extends Parent {void accessParent() {myVar 10; // 可以访问 protected 变量myMethod(); // 可以访问 protected 方法}
}default包私有
访问范围 同一包内的类可以访问。不同包中的类无法访问。 作用 如果不显式指定访问修饰符则默认为 default。
package com.example;class MyClass {int myVar; // default 访问权限void myMethod() {System.out.println(Default Method);}
}private
访问范围 仅限当前类内部访问。 作用 用于封装类的内部实现细节防止外部直接访问。
public class MyClass {private int myVar;private void myMethod() {System.out.println(Private Method);}public void setMyVar(int value) {this.myVar value; // 可以在类内部访问 private 变量}
}访问修饰符的总结
访问修饰符类内部同一包内不同包的子类不同包的非子类public✔️✔️✔️✔️protected✔️✔️✔️❌default✔️✔️❌❌private✔️❌❌❌
访问修饰符的使用场景
public 用于暴露 API如工具类的方法或常量。例如public static final int MAX_VALUE 100;
protected 用于允许子类扩展父类的功能。例如protected void init() { … }
default 用于包内共享的辅助类或工具方法。例如void helperMethod() { … }
private 用于封装类的内部实现细节。例如private String secretKey;
注意事项
类的访问修饰符只能是 public 或 default包私有。接口中的方法默认是 public变量默认是 public static final。构造器可以使用 public、protected、default 或 private。private 构造器常用于单例模式或工具类。
package com.example;public class AccessExample {public int publicVar 1;protected int protectedVar 2;int defaultVar 3; // default 访问权限private int privateVar 4;public void publicMethod() {System.out.println(Public Method);}protected void protectedMethod() {System.out.println(Protected Method);}void defaultMethod() {System.out.println(Default Method);}private void privateMethod() {System.out.println(Private Method);}
}class AnotherClass {void testAccess() {AccessExample example new AccessExample();System.out.println(example.publicVar); // 可以访问System.out.println(example.protectedVar); // 可以访问System.out.println(example.defaultVar); // 可以访问// System.out.println(example.privateVar); // 编译错误无法访问 private 变量}
}