- Java 中,访问修饰符(Access Modifiers)用于控制 类、方法、变量等成员的可见性和访问权限。
- 它们定义了其它 类或模块是否可以访问 某个成员(如:调用方法、读取字段等)。
1、Java 访问控制符
- 1、仅本类可以访问 – private 。
- 2、可由外部访问 – public。
- 3、本包和所有子类可以访问 – protected。
- 4、本包中可以访问 – 默认(很遗憾), 不需要修饰符。
访问控制符(是否可以访问) | 本类中 | 同包不同类(含无继承) | 不同包(有继承关系) | 不同包中(无继承关系) |
---|
private | 是 | × | × | × |
默认(什么都不写) | 是 | 是 | × | × |
proteted | 是 | 是 | 是 | × |
public | 是 | 是 | 是 | 是 |
2、一般属性是否要设置为 private ?若设置为 private, 如何让外部访问该属性?
- 在 Java 类中,一般属性建议设置为 private。
- 这是面向对象编程中封装(Encapsulation)的核心原则。
- 1、控制访问,隐藏实现细节
- 避免非法修改:
- 外部代码无法直接修改属性,只能通过类提供的安全方法(如:getter/setter)间接操作。
- 2、灵活维护内部逻辑
- 3、数据验证与副作用控制
public class Person {
private int age;
public void setAge(int age) {
if (age >= 0 && age <= 150) {
this.age = age;
} else {
throw new IllegalArgumentException("年龄不合法");
}
}
}
- 通过公共方法 (getter/setter) 提供可控访问: