温馨提示×

温馨提示×

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

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

Java private私有有哪些特点

发布时间:2026-10-04 11:55:58 来源:亿速云 阅读:95 作者:小樊 栏目:编程语言

在 Java 中,private 是**访问修饰符(access modifier)**之一,用来限制类成员(变量、方法、构造器等)的访问范围。其主要特点和含义如下:


1. 访问范围最小

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();     // 编译错误
    }
}

2. 只能修饰类的成员

private 可以修饰:

  • 成员变量(字段)
  • 成员方法
  • 构造方法
  • 内部类

❌ 不能修饰:

  • 外部类(top-level class)
  • 接口(interface)
  • 局部变量(局部变量本身就只在方法内可见)
private class Inner { } // 可以(内部类)
// private class Outer { } // 错误

3. 子类不能继承 private 成员

  • private 成员不会被继承
  • 子类不能直接使用父类的 private 成员
  • 但可以通过父类提供的 public / protected 方法间接访问(封装思想)
class Parent {
    private int x = 10;

    public int getX() {
        return x;
    }
}

class Child extends Parent {
    // 无法访问 x,但可以调用 getX()
}

4. 常用于封装(Encapsulation)

private 是实现封装的核心手段:

  • 隐藏实现细节
  • 防止外部直接修改数据
  • 通过 getter / setter 控制访问
class User {
    private String name;

    public String getName() {
        return name;
    }

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

5. 构造方法可以是 private

  • 用于单例模式、工具类、工厂模式
class Singleton {
    private static Singleton instance = new Singleton();

    private Singleton() {}

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

6. private 不影响“对象内部”访问

⚠️ 注意:
private 限制的是类,不是对象

class Demo {
    private int value;

    void compare(Demo other) {
        System.out.println(other.value); // 合法
    }
}

总结对比(常见访问修饰符)

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

如果你愿意,我也可以结合面试常问点或代码示例场景再详细讲一下。

向AI问一下细节

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

AI
助
手