封装:从词义表示要将什么东西包裹在一个封闭的区域内;
这是面向对应的三大特性之一,认为世界是由不同的对象组成,不同的都有自己的边界。
对象的内部有状态,对外部提供功能,保护自己;例如人;
对于自己人会抵御外部的侵害,保护自己免受伤害。对于外界,我们能工作提供服务。
Java 语言作为我们解决问题的工具,也是来自我们对世界的认识和观察。不会超出我们认识。最强大脑中的题目是人想出来的,是人脑和人脑的较量;题目首先与人脑能构建出多复杂的题目。如果直接把人仍在火星,能生存下来,那就是最强大脑,不是!那是最强生物。
public class Person {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
如上是一个例子,在声明name 属性为private 在类的外部是不能访问的,但是可以通过getName方法访问。
可以通过setName,给对象设置名字。
- 如果有一天我们想将name属性改成,realName,我们只需要修改属性和方法,不需要修改
已经使用该类的地方。
public class Person {
private String realName;
public String getName() {
return realName;
}
public void setName(String name) {
this.realName = name;
}
}
- 可以对类内部的属性,做更精细化的管理
public class Person {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
if(null == name || name.length()== 0)
throw new IllegalArgumentException("invalide name parameter");
this.name = name;
}
}
对name 属性的设置做了保护