在 Java 中,private 是一种访问修饰符(access modifier),用来限制类成员(字段、方法、构造器等)的访问范围。
private 的基本含义private 表示:只能在定义它的类内部访问class Person {
private int age;
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
}
class Test {
public static void main(String[] args) {
Person p = new Person();
// p.age = 18; // ❌ 编译错误:age 是 private
p.setAge(18); // ✅
}
}
原则:字段私有,通过方法访问
private String name;
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;
}
}
✅ 用于:
class Calculator {
public int add(int a, int b) {
return a + b;
}
private void log() {
System.out.println("计算完成");
}
}
✅ 用于:
class Outer {
private class Inner {
void show() {
System.out.println("inner");
}
}
}
private 不能做什么(误区)❌ 子类不能访问父类 private 成员
class A {
private int x;
}
class B extends A {
// 不能访问 x
}
❌ 不同对象之间也不能访问 private
class Test {
private int value;
void compare(Test other) {
// this.value ✅
// other.value ❌(不同实例也不行)
}
}
| 修饰符 | 同类 | 同包 | 子类 | 其他包 |
|---|---|---|---|---|
| private | ✅ | ❌ | ❌ | ❌ |
| default | ✅ | ✅ | ❌ | ❌ |
| protected | ✅ | ✅ | ✅ | ❌ |
| public | ✅ | ✅ | ✅ | ✅ |
✅ 字段一律 private
✅ 通过 getter / setter 控制访问
✅ 只在类内部用的方法设为 private
✅ 不希望被继承或实例化的类,构造器 private
如果你愿意,我也可以结合 Spring / 实体类 / 面试角度 给你更具体的例子。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。