在 Java 中,private 是**访问修饰符(access modifier)**之一,用来限制类成员(变量、方法、构造器等)的访问范围。其主要特点和含义如下:
private 是 Java 中访问权限最严格的修饰符:
class Person {
private int age;
private void show() {
System.out.println(age);
}
}
class Test {
public static void main(String[] args) {
Person p = new Person();
// p.age = 18; // 编译错误
// p.show(); // 编译错误
}
}
private 可以修饰:
❌ 不能修饰:
private class Inner { } // 可以(内部类)
// private class Outer { } // 错误
private 成员不会被继承private 成员public / protected 方法间接访问(封装思想)class Parent {
private int x = 10;
public int getX() {
return x;
}
}
class Child extends Parent {
// 无法访问 x,但可以调用 getX()
}
private 是实现封装的核心手段:
class User {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
if (name != null) {
this.name = name;
}
}
}
class Singleton {
private static Singleton instance = new Singleton();
private Singleton() {}
public static Singleton getInstance() {
return instance;
}
}
⚠️ 注意:
private 限制的是类,不是对象
class Demo {
private int value;
void compare(Demo other) {
System.out.println(other.value); // 合法
}
}
| 修饰符 | 同类 | 同包 | 子类 | 其他包 |
|---|---|---|---|---|
| private | ✅ | ❌ | ❌ | ❌ |
| default | ✅ | ✅ | ❌ | ❌ |
| protected | ✅ | ✅ | ✅ | ❌ |
| public | ✅ | ✅ | ✅ | ✅ |
如果你愿意,我也可以结合面试常问点或代码示例场景再详细讲一下。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。