在 Java 中,private(私有) 是一种访问修饰符(access modifier),用来控制类成员(变量、方法、构造器等)的可见范围。
被 private 修饰的成员,只能在本类内部访问,其他任何类都不能直接访问。
class Person {
private int age;
public void show() {
System.out.println(age); // ✅ 本类内部可以访问
}
}
class Test {
public static void main(String[] args) {
Person p = new Person();
// p.age = 18; // ❌ 编译错误:age 是 private
}
}
| 可修饰 | 说明 |
|---|---|
| 成员变量 | 最常见,用于隐藏数据 |
| 方法 | 只在类内部使用的方法 |
| 构造方法 | 防止外部直接 new 对象 |
| 内部类 | 控制内部类的可见性 |
外部不需要知道内部怎么存数据,只要能用就行。
防止外部乱改数据。
private int age;
public void setAge(int age) {
if (age > 0) {
this.age = age;
}
}
内部实现变了,外部代码不受影响。
封装 = 私有化成员变量 + 提供 public 的 getter / setter
class User {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
| 修饰符 | 本类 | 同包 | 子类 | 其他包 |
|---|---|---|---|---|
| private | ✅ | ❌ | ❌ | ❌ |
| 默认 | ✅ | ✅ | ❌ | ❌ |
| protected | ✅ | ✅ | ✅ | ❌ |
| public | ✅ | ✅ | ✅ | ✅ |
❌ private 不能被继承?
→ 错,子类“继承”了,但不能直接访问
❌ private 方法一定不能被调用?
→ 错,可以通过 public 方法间接调用
private 就是“家丑不可外扬”,只让自己人(本类)知道。
如果你愿意,我也可以用生活中的比喻或结合 Spring / 框架场景再讲一遍。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。