Java封装
视频锁定
{$ currentTime | date:'mm:ss' $}
{$ timeLeft | date:'mm:ss' $}
在面向对象程序设计方法中,封装(Encapsulation)是指,一种将行为(方法)和状态(变量)的实现细节包装、隐藏起来的方法。封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随意访问。要访问该类的代码和数据,必须通过严格的接口控制。
封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。适当的封装可以让代码更容易理解与维护,也加强了程式码的安全性。
通常我们可以将全部成员变量设置为private
的方式来创建封装类,然后我们为这些成员变量提供getter
和setter
方法来访问这些被保护的成员变量。POJO类就是封装最好的例子。
代码示例
让我们来看一个Java封装类的例子:
public class Employee {
private String name;
private String idNum;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getIdNum() {
return idNum;
}
public void setIdNum(String idNum) {
this.idNum = idNum;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String toString() {
return "Name:[" + name + "], IdName:[" + idNum + "], Age:[" + age + "]";
}
}
以上示例中public
方法是外部类访问该类成员变量的入口。
因此,任何要访问类中私有成员变量的类都要通过这些getter
和setter
方法。
通过如下的例子说明Employee类的变量怎样被访问:
public class EmployeeTest {
public static void main(String[] args) {
Employee employee = new Employee();
employee.setName("James");
employee.setIdNum("c80421");
employee.setAge(26);
System.out.println(employee);
}
}
运行结果如下:
Name:[James], IdName:[c80421], Age:[26]
在线练习
{$ activeFileHint $}