面向对象之封装

封装最主要的功能:

在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。

适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。

编程中封装的具体优点:

1.提高代码的安全性,隐藏信息、实现细节

2.提高代码的复用性

3.“高内聚”:封装细节,便于修改内部代码,提高可维护性

4.“低耦合”:简化外部调用,便于调用者使用,便于扩展和写作。

5.可以对成员变量进行更精确的控制

思想:封装时间类,json转换,分页类,积累起来后可以打包成一个属于自己的jar包


封装的理解:

比如将下面的age修改为String类型的呢?你只有一处使用了这个类还好,如果你有几十个甚至上百个这样地方,你是不是要改到崩溃。如果使用了封装,我们完全可以不需要做任何修改,只需要稍微改变下Husband类的setAge()方法即可

对应:在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。

public void setAge(int age) {

//转换即可

        this.age = String.valueOf(age);

    }

其他的地方依然那样引用(husband.setAge(22))保持不变。

到了这里我们确实可以看出,封装确实可以使我们容易地修改类的内部实现,而无需修改使用了该类的客户代码。

我们在看这个好处:可以对成员变量进行更精确的控制。

上面都是对setter方法的控制,其实通过使用封装我们也能够对对象的出口做出很好的控制。例如性别我们在数据库中一般都是已1、0方式来存储的,但是在前台我们又不能展示1、0,这里我们只需要在getter()方法里面做一些转换即可。

public String getSexName() {

        if("0".equals(sex)){

sexName = "女";

        }

        else if("1".equals(sex)){

sexName = "男";

        }

        else{

sexName = "人妖???";

        }

        return sexName;

    }

在使用的时候我们只需要使用sexName即可实现正确的性别显示。同理也可以用于针对不同的状态做出不同的操作。

public String getCzHTML(){

        if("1".equals(zt)){

czHTML = "启用";

        }

        else{

czHTML = "禁用";

        }

        return czHTML;

    }

你可能感兴趣的:(面向对象之封装)