温馨提示×

温馨提示×

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

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

Java Private 私有访问权限如何

发布时间:2026-07-23 22:28:54 来源:亿速云 阅读:88 作者:小樊 栏目:编程语言

在 Java 中,private(私有访问权限) 是最严格的访问修饰符,用于控制类成员的访问范围。


一、private 的作用范围

private 修饰的成员(变量、方法、构造方法)只能在本类中访问,其他任何类都不能直接访问。

public class Person {
    private String name;
    private int age;

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

✅ 在 Person 类内部可以访问
❌ 在其他类中 不能直接访问


二、示例说明

1️⃣ 正常访问(本类中)

public class Person {
    private String name;

    public void setName(String name) {
        this.name = name; // ✅ 允许
    }
}

2️⃣ 非法访问(其他类中)

public class Test {
    public static void main(String[] args) {
        Person p = new Person();
        // p.name = "Tom"; // ❌ 编译错误
    }
}

三、private 的常见用途

✅ 1. 封装成员变量(推荐做法)

public class Person {
    private String name;
    private int age;

    public String getName() {
        return name;
    }

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

✅ 通过 getter / setter 访问
✅ 提高安全性、可维护性


✅ 2. 隐藏实现细节

public class MathUtil {
    private MathUtil() {
        // 防止实例化
    }

    public static int add(int a, int b) {
        return a + b;
    }
}

✅ 3. 工具类、单例模式

public class Singleton {
    private static Singleton instance;

    private Singleton() {}

    public static Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
}

四、private 与其他访问权限对比

修饰符 本类 同包 子类 不同包
private
default
protected
public

五、常见误区

private 能被继承吗?

不能。子类无法继承父类的 private 成员,但子类对象中仍然存在该成员(只是不能直接访问)。

private 能被反射访问吗?

可以(但属于特殊手段,不推荐常规使用)

field.setAccessible(true);

六、总结一句话

private 用于封装,限制访问范围,只在本类中可见,是 Java 封装思想的核心。

如果你愿意,我也可以帮你对比 private / protected / public 的实际使用场景,或者结合 面试常问点 讲一遍。

向AI问一下细节

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

AI