封装是指一种将抽象性函式接口的实现细节部份包装、隐藏起来的方法。 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。
Java 封装的特点:
- 将类的某些信息隐藏在类的内部,不允许外部直接访问。
- 通过该类提供的方法来实现对隐藏信息的操作和访问。
- 隐藏对象的信息,留出访问接口,通过规定的方法访问数据。
封装代码实现:
属性前+private:该属性只能在当前类内部被访问;在类外对private属性访问需要:创建getter/setter操作接口取值和赋值:
- 修改属性的可见性来限制对属性的访问(一般限制为private)
- 对每个值属性提供对外的公共方法访问,也就是创建getter 和 setter方法(将实例变量的首字母大写,在前面添加get或者set,变成getter 和 setter方法名)
代码示例:
SimplePerson.java:
public class SimplePerson {
//private限定只能在当前类访问
private String name;
//创建set方法
public void setName(String name){
this.name=name;
}
//创建get方法
public String getName(){
return "这个男孩叫"+this.name;
}
}
ClassTest.java:
public class ClassTest {
public static void main(String[] args){
//对象实例化
SimplePerson boy=new SimplePerson();
//赋值
boy.setName("小明");
//输出结果
System.out.println(boy.getName()); //结果为:这个男孩叫小明
}
}
封装的优点:
- 良好的封装能够减少耦合。
- 类内部的结构可以自由修改。
- 可以对成员变量进行更精确的控制。
- 隐藏信息,实现细节。