直接访问通过对象或类名调用公共成员,适用于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); // 直接访问静态变量
间接访问成员
间接访问是通过公共的方法来访问私有(private)成员,这是封装的核心体现。通常通过 getter 和 setter 方法实现。
一个Flex应用程序有ActionScript和MXML两种语言代码组成。从3.0开始ActionScript已经从基于原型脚本语言进化到完全面向对象的,强类型的符合ECMAScript标准的脚本语言。MXML则是一种标记语言,非常类似于大家所熟悉的超文本标记语言(HTML),扩展标记语言(XML)。 这本FLEX 3 COOKBOOK 中文版是由常青翻译团队翻译的,成员主要有常青、Nigel、草衣薰、Native、王平、ken、屋檐下、小河、Na 等人,目前为目内容质量比较高的一个版本,而且清淅度
- 将字段设为 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()); // 间接获取值
基本上就这些。根据实际需求选择合适的访问方式,优先推荐间接访问以保障封装性。对于工具类或常量,合理使用直接访问也能提升便利性。不复杂但容易忽略细节。










