Java三大特性之 封装
面对对象有三大特性:
1.封装
2.继承
3.多态
现在我们来讲第一个特性:封装
为什么要进行封装
如下我们定义了一个Person类,具有两个filed:
class Person {
public String name;
public int age;
}
如果直接将字段用public修饰暴露给外部可能会破坏封装性,比如可以这么写:
Person ming = new Person();
ming.name = "Xiao Ming";
ming.age = -99; // age设置为负数
此时就不符合逻辑状态,那么就需要用到private修饰符来对filed进行拒绝外部访问
class Person{
private String name;
private int age;
}
由private所修饰无法被外部访问,只能通过内部方法进行传值等操作:
public class Main {
public static void main(String[] args) {
Person ming = new Person();
}
}
class Person {
private int age;
public void setAge(int age){
if(age>0||age<=150)
this.age = age;
else
System.out.println("年龄输入有误");
}
public int getage(){
return this.age;
}
}
此时的Person类通过定义方法,就可以给外部代码暴露一些操作的接口,同时,内部自己保证逻辑一致性。
封装的必要性
除了以上封装给一个class逻辑上的保证,封装还能告诉我们 如何正确的设计对象的方法和属性 ,所要作到的原则是对象代表什么 ,就得到对应的数据,并且提供数据对应的行为。
以下是Sun公司所提供的API帮助文档
总结
我们明白了封装,就可以:
- 降低学习成本,很好地应用 API帮助文档 去找寻我们所需要的 方法 应用。
- 让编程变得简单,有什么事找对象调用方法即可。
- 对于程序而言也提高了安全性,保护了数据。