封装的概念
在面向对象中封装是指隐藏对象的属性和实现的细节,仅对外提供公共访问方式,是一种信息隐藏技术,在java中通过关键字private,protected和public实现封装。封装实际上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。
封装的好处
- 把类的细节与外界隔离起来,从而实现数据项和方法的隐藏。
- 只允许外部对类作有限的访问,开发者可以改变类内部的工作方式而不用担心会影响到客户端程序员,只要向外部暴露出来的接口不改变,内部代码就可以自由改变,而不对使用该类的程序产生影响。这是隔离性的体现,同时也是实现高内聚,低耦合的最根本的思想之一。
- 可以对成员进行更精确的控制。
例子
public class Star {
//姓名
private String name;
//性别
private String Sex;
//年龄
private int age;
//是否结婚
private boolean isMarried;
//获取姓名
public String getName() {
return name;
}
//设置姓名
public void setName(String name) {
this.name = name;
}
//获取性别
public String getSex() {
return Sex;
}
//设置性别
public void setSex(String sex) {
Sex = sex;
}
//获取年龄
public int getAge() {
return age;
}
//设置年龄,这里对成员进行了更精准的控制
public void setAge(int age) throws Exception {
if(age < 0) {
throw new Exception("瞎搞");
}
this.age = age;
}
//设置是否已婚,没有isMarried方法是因为不想让别人知道该对象是否已婚
public void setMarried(boolean isMarried) {
this.isMarried = isMarried;
}
public String bootyCall() {
if (isMarried) {
return "不约";
}
else {
return "约";
}
}
}