阅读时间: 5分钟
Encapsulation的中文是封装的意思,可以理解成将物件重新包装或组装。目的是将敏感的资料保护起来,避免其他程式存取。
为了将敏感的资料隐藏,我们可以将class的variables/attributes设定为private,同时加上public的get method 和 set method。
可以透过public的get method (Getter)和 set method(Setter)来存取或更新private的variables/attributes。
当然亦可以只加上get method (Getter)或set method(Setter),如果只使用get method (Getter) 就可以做到只能读取(read-only)。如果只使用set method (Setter) 就可以做到只能写入(write-only)。
例子:
public class Person { private String name; // 将name设为private // Getter public String getName() { return name; } // Setter public void setName(String newName) { this.name = newName; }}
可以在其他class透过getter/setter的方式存取或更新private的variables/attributes。
public class MyClass { public static void main(String[] args) { Person myObj = new Person(); myObj.name = "John"; // error System.out.println(myObj.name); // error myObj.setName("John"); // 更改name的值 System.out.println(myObj.getName()); //存取name的值 }}