java类中的两种成员访问

直接访问通过对象或类名调用公共成员,适用于public和static成员,简单但易破坏封装;间接访问通过getter/setter方法操作私有成员,增强安全性与维护性,推荐优先使用。

Java类中的成员访问主要通过两种方式实现:直接访问和间接访问。这两种方式分别适用于不同的场景,合理使用可以提高代码的安全性和可维护性。

直接访问成员

直接访问是指在类的内部或外部通过对象实例或类名直接调用成员变量或方法。这种方式适用于公共(public)成员。

说明:
  • 如果成员被声明为 public,可以在类外部通过对象直接访问。
  • 对于 static 成员,可以通过类名直接访问,无需创建对象。
  • 直接访问简单直观,但过度使用会破坏封装性。
示例:
class Person {
    public String name;
    public static int count = 0;

    public void show() {
        System.out.println("Name: " + name);
    }
}

// 使用
Person p = new Person();
p.name = "Alice";     // 直接访问实例变量
p.show();             // 直接访问方法
System.out.println(Person.count); // 直接访问静态变量

间接访问成员

间接访问是通过公共的方法来访问私有(pr

ivate)成员,这是封装的核心体现。通常通过 getter 和 setter 方法实现。

说明:
  • 将字段设为 private,防止外部随意修改。
  • 提供公共的 getter 获取值,setter 设置值,可在其中加入逻辑校验。
  • 增强数据安全性与灵活性,便于后期维护。
示例:
class Person {
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        if (name != null && !name.isEmpty()) {
            this.name = name;
        } else {
            System.out.println("Name cannot be null or empty");
        }
    }
}

// 使用
Person p = new Person();
p.setName("Bob");           // 间接设置值
System.out.println(p.getName()); // 间接获取值

基本上就这些。根据实际需求选择合适的访问方式,优先推荐间接访问以保障封装性。对于工具类或常量,合理使用直接访问也能提升便利性。不复杂但容易忽略细节。