在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接 口的实现细节部份包装、隐藏起来的方法。 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访 问。 要访问该类的代码和数据,必须通过严格的接口控制。 适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。
封装的优点:
- 良好的封装能够减少耦合。
- 类内部的结构可以自由修改。
- 可以对成员变量进行更精确的控制。
- 隐藏信息,实现细节。
实现Java封装的步骤:
- 修改属性的可见性来限制对属性的访问(一般限制为private)
- 对每个值属性提供对外的公共方法访问,也就是创建getter 和 setter方法(将实例变量的首字母大写,在前面添加get或者set, 变成getter 和 setter方法名)
示例代码:
public class Person {
private String name;
private int age;
private static int intA;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public static int getIntA() {
return intA;
}
public static void setIntA(int intA) {
Person.intA = intA;
}
}
MyEclipse中有快速封装的方法,快捷键shift+alt+s键,选择“Generate Getters and Setters”
勾选你要封装的变量,点击OK即可自动封装。
访问封装类中的成员变量都要通过这些getter和setter方法
通过如下的例子说明封装类的变量怎样被访问:
public class Test {
public static void main(String[] args) {
Person person = new Person();
person.setName("小哥哥");
person.setAge(22);
System.out.println("Name:"+ person.getName()+" Age:"+ person.getAge());
}
}