------- android培训、java培训、期待与您交流! ----------
众所周知,面向对象思想有三大特征:封装,继承,多态。
下面详细说说封装。
封装是很好理解的,就是隐藏属性和实现细节,仅对外提供公共的访问方式。
封装的体现有类,方法,以及private修饰成员变量等。
类实际就是一个封装体,把事物的属性和行为功能封装成一个整体,使我们在new对象的时候能够使用里面的属性和方法。
方法也是一个封装体,将方法实现的细节封装成一个整体,而我们要用的只是需要调用方法来得到结果,而不必知道方法的具体细节。一个方法可以方便的被多个调用者调用。即使方法发生了变化,也仅对方法进行修改就可以了。
在使用类new对象的时候,可以直接对属性进行赋值,这样很容易给属性赋一个并不符合实际情况的值,而对成员变量的值进行判断必须依靠逻辑语句,显然在成员变量的位置进行逻辑语句的判断并不合理,而应在方法中进行判断才是合理的。这样java就提供了一个private关键字,将成员变量私有化,对外隐藏类中的成员变量。比如可以对不希望直接进行赋值的属性私有化,而对外提供赋值的方法。提高了数据的安全性。
private也是封装的一种体现。
由此可见封装的好处有:
1、 便于使用
2、 提高重用性
3、 将变化隔离
4、 提高安全性
封装的原则就是将不需要对外提供的内容都隐藏起来。
举例:
class Student{
//将年龄属性私有化
private int age;
//对外提供方法,可以对年龄属性进行赋值,并且可以对赋值进行判断
//而调用者并不需要知道是如何进行判断的,只要赋值提示不正确,改正即可
//并且也可以修改方法,改变判断条件
public void setAge(int age){
this.age = age;
if(!(age>0&&age<130)){
System.out.println(“年龄超出范围!”);
}
}
//同时对外提供外部对年龄属性的访问方法
public int getAge(){
returnage;
}
}