在 Java 中,private 是一种访问修饰符(access modifier),它的主要作用是限制访问范围,用于实现封装(encapsulation),这是面向对象编程的重要特性之一。
private 的作用private 修饰的成员(变量或方法):
class Person {
private int age;
private void show() {
System.out.println("age = " + age);
}
}
class Test {
public static void main(String[] args) {
Person p = new Person();
// p.age = 10; // ❌ 编译错误
// p.show(); // ❌ 编译错误
}
}
通过 private 防止外部随意修改对象内部状态。
class Student {
private int score;
public void setScore(int s) {
if (s >= 0 && s <= 100) {
score = s;
}
}
public int getScore() {
return score;
}
}
外部只能通过 方法 修改数据,保证数据合法性。
private 可以让类的内部实现对外不可见,只暴露必要的接口。
class Car {
private void startEngine() {
System.out.println("引擎启动");
}
public void run() {
startEngine();
System.out.println("汽车行驶");
}
}
调用者只需知道 run(),不需要知道 startEngine() 的存在。
private 可以修饰什么?| 可修饰 | 说明 |
|---|---|
| ✅ 成员变量 | 最常见 |
| ✅ 成员方法 | 常用于内部逻辑 |
| ✅ 构造方法 | 常用于单例模式 |
| ✅ 内部类 | 隐藏内部实现 |
private int x;
private void test() {}
private class Inner {}
| 修饰符 | 同一类 | 同一包 | 子类 | 不同包 |
|---|---|---|---|---|
private |
✅ | ❌ | ❌ | ❌ |
| 默认(无修饰符) | ✅ | ✅ | ❌ | ❌ |
protected |
✅ | ✅ | ✅ | ❌ |
public |
✅ | ✅ | ✅ | ✅ |
private String name;
private int age;
public String getName() { return name; }
public void setName(String name) { this.name = name; }
class Singleton {
private static Singleton instance = new Singleton();
private Singleton() {}
public static Singleton getInstance() {
return instance;
}
}
private的作用是限制成员只能在当前类中使用,用来保护数据、隐藏实现细节,实现封装。
如果你愿意,我也可以帮你对比 private vs protected vs public,或者结合 面试常问点 给你讲。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。