首页 闲谈

什么是面向对象?谈谈你对面向对象的理解

对比面向过程,面向过程更注重事情步骤和顺序,面向过程注重事情的参与者(对象)、各自需要做什么。
各自优缺点:面向过程比较直接高效,面向对象更易于复用、拓展和维护。
那么面向对象还有它绕不开的三大特性:封装、继承、多态。


封装

封装就是内部细节对外部调用透明,外部调用无需修改或关心内部实现。
好比我有一个类,这类中有很多属性、方法,而我只想提供一两个方法给外部调用,其他方法不想让外部调用。
下面讲一下java中使用封装最多列子:
javabean的属性私有,提供get/set方法对外访问,这样属性的赋值或者获取逻辑只能由javabean本身决定,而不能让外部胡乱修改。

    private String name;
public void setName(String name){
    this.name="baidu"+name;
}

这个name属性我就在设置的时候加上了前缀,这样外部不能修改我的赋值操作。
orm框架(数据库框架)
我们操作数据库,我们不需要关心数据库是如何建立连接的、sql是如何执行的,只需要引入mybatis等持久层框架调用里面的方法即可。


继承

继承的意义:继承基类的方法,并做出自己的改变和拓展。
子类共性的方法或属性直接使用父类的,而不需要自己再定义,只需要拓展自己个性化的方法或属性。


多态

多态的意义:基于对象所属类的不同,外部对同一个方法的调用,实际执行的逻辑不同。
多态和继承是包含关系,形成多态的三个条件:继承、方法重写、父类引用指向子类对象。

父类类型 变量名= new 子类对象;
变量名.方法名();//这里调用的方法是子类的方法,所以这叫多态
//这样调用的好处是子类对象和无限替换,而调用的方法名不用改变。



文章评论