温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java private 到底是什么

发布时间:2026-10-25 03:50:54 来源:亿速云 阅读:95 作者:小樊 栏目:编程语言

在 Java 里,private 是一种访问修饰符(access modifier),用来限制类成员(字段、方法、构造器等)的可见范围。


一句话理解

private 表示:只有“当前这个类自己”能访问,别的类(包括子类)都不能直接访问。


基本用法

public class Person {
    private int age;

    public void setAge(int age) {
        this.age = age;
    }

    public int getAge() {
        return age;
    }
}
  • age 是 private
  • 在 Person 类内部可以随便用
  • 在别的类里 不能直接 person.age

❌ 错误示例:

Person p = new Person();
p.age = 18; // 编译错误:age has private access

访问范围对比(很重要)

修饰符 同一类 同一包 子类 其他包
private ✅ ❌ ❌ ❌
默认(不写) ✅ ✅ ❌* ❌
protected ✅ ✅ ✅ ❌
public ✅ ✅ ✅ ✅

*默认修饰符对子类:同包子类可以,不同包不行


常见使用场景

1️⃣ 封装(最常用)

用 private 隐藏内部数据,通过 getter / setter 控制访问:

private String name;

public void setName(String name) {
    if (name != null) {
        this.name = name;
    }
}

✅ 好处:

  • 防止非法赋值
  • 内部实现可改,外部无感知

2️⃣ 私有方法

只在类内部使用的工具方法:

private void log() {
    System.out.println("log");
}

外部类用不到,也不应该暴露。


3️⃣ 单例模式

public class Config {
    private static Config instance = new Config();

    private Config() {}

    public static Config getInstance() {
        return instance;
    }
}

private 构造方法 → 防止外部 new 对象


常见误区

❌ 误区 1:private 能被子类继承?

  • 能“继承”变量,但不能“直接访问”
  • 子类只能通过父类的 public / protected 方法访问

❌ 误区 2:反射能访问 private

field.setAccessible(true);

✅ 技术上可以
❌ 设计上不推荐(破坏封装)


总结一句话

private = 只给自己用,别人别碰,是 Java 封装的核心手段。

如果你愿意,我也可以从 JVM 层面 / 面试角度 / 和 final 的区别 再给你讲一层。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手