温馨提示×

温馨提示×

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

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

java private 如何正确使用

发布时间:2026-10-25 04:32:57 来源:亿速云 阅读:98 作者:小樊 栏目:编程语言

在 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); // ✅
    }
}

二、常见正确使用方式

1️⃣ 封装字段(最常用)

原则:字段私有,通过方法访问

private String name;

public String getName() {
    return name;
}

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

✅ 好处:

  • 控制赋值逻辑
  • 防止非法数据
  • 提高可维护性

2️⃣ 构造器私有(单例模式)

class Singleton {
    private static Singleton instance = new Singleton();

    private Singleton() {}

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

✅ 用于:

  • 单例
  • 工具类(防止 new)

3️⃣ 私有方法(内部辅助逻辑)

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

    private void log() {
        System.out.println("计算完成");
    }
}

✅ 用于:

  • 只在本类使用
  • 不希望对外暴露

4️⃣ 私有内部类

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 vs 其他修饰符

修饰符 同类 同包 子类 其他包
private ✅ ❌ ❌ ❌
default ✅ ✅ ❌ ❌
protected ✅ ✅ ✅ ❌
public ✅ ✅ ✅ ✅

五、使用建议(最佳实践)

✅ 字段一律 private
✅ 通过 getter / setter 控制访问
✅ 只在类内部用的方法设为 private
✅ 不希望被继承或实例化的类,构造器 private


如果你愿意,我也可以结合 Spring / 实体类 / 面试角度 给你更具体的例子。

向AI问一下细节

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

AI
助
手