zoukankan      html  css  js  c++  java
  • Java :面向对象

    Java :面向对象

    直面Java 第001期

    什么是面向过程

    面向过程是以函数为中心,要解决一个问题,需要把问题分解为一个个的步骤,然后定义一系列的流程,用特定的输入经过函数的处理,最终输出特定的结果。

    什么是面向对象

    面向对象是对象为中心,对每一个步骤抽象形成对象,在对象中封装好需要解决问题的方法,强调了代码的复用。

    两者的区分

    比如说现在要实现一个开车的功能。

    对于面向过程来说,实现驾驶员开车,需要定义一系列的流程,比如说挂挡 -> 踩离合 -> 踩油门等等,此外如果现在有一个其他的车,就需要重新定义一下流程。

    对于面向对象来说,实现这个功能,可以先定义一个基本的车类型,封装一些共有的属性和方法,然后定义一个特定的车类型,在其中定义驾驶这个车需要的方法,以后要用的时候直接调用这个对象的方法就可以了,如果有其他的车需要驾驶,也可以通过继承来公用一些都有的属性方法,增加了代码的复用性。

    三大基本特征

    封装

    就是把一个对象所拥有的属性和方法融合进一个结构中,对外只显示定义者想给外界看的东西。

    对于属性,比如说一个车,可能会有大小,材质,颜色等属性,一般不直接对外公开,提供一个方法来决定给外界什么的属性操作权限。

    对于方法,比如说车中会有前进、后退、转弯等方法,一般是用来定义这个对象的一些操作行为,提供给外界使用。

    继承

    通过A类继承来继承B类,使得A类来重用一些B类的属性和方法。

    例如一开始定义了一个车子类型,里面有所有车子都有的颜色,材质等属性,前进、后退等行为,现在有一个私家车类型,只要继承了前面的车类型,就已经拥有了父类所定义的这些,还可以重载来使得其变得拥有自身的属性方法。

    多态

    多态一般通过类继承和接口实现指向子类来实现,使得通过父类引用来操作子类对象。

    # 这样就可以用父类的引用来调用子类
    Vehicle vehicle = new Vehicle();
    vehicle.move();
    

    五大基本原则

    单一职责原则

    一个类应该有且只有一个去改变它的理由

    比如说求一个图形的面积并返回给用户,这个方法需要定义如何求面积和如何返回的话,就违反了「单一职责原则」,日后如果返回格式变了,就需要重新定义方法,就违背了原则.因此我们只需要定义求面积,具体如何返回,交给其他的方法来操作.

    开放封闭原则

    对象或实体应该对扩展开放,对修改封闭。

    对于求一个图形的面积,如果我们已经定义好了,此时需要求其他的图形,不能在原先定义的方法里面修改,应该拓展一个其他方法来求解.

    里式代换原则

    对父类的调用同样适用于子类

    子类应当可以替换父类并出现在父类能够出现的任何地方.因为父类拥有的东西子类都有,因此可以替换。

    接口隔离原则

    不应强迫客户端实现一个它用不上的接口,或是说客户端不应该被迫依赖它们不使用的方法

    对于一个立体图形来说,拥有求体积的的功能,现在有一个平面图像,就不能实现这个接口,因为平面图形不求体积。

    依赖反转原则

    高层次模块不应依赖于低层次模块。

    应该把低层次模块中的特定功能抽象成接口,然后实现这个接口,这样高层模块就可以调用接口来实现解耦,日后低层次模块修改了,高层次模块不用改变。

    参考资料:

    1. http://blog.jobbole.com/86267/
    2. Hollis知识星球
  • 相关阅读:
    使用Shell脚本查找程序对应的进程ID,并杀死进程
    转,mysql快速保存插入大量数据一些方法总结
    L2TP/IPSec一键安装脚本
    全文搜索引擎 Elasticsearch 入门教程
    vmware设置扩大硬盘后如何在linux内容扩容
    Java序列化说明
    GIT常用命令
    java中的CAS
    Class.forName()用法详解
    Java用pdfbox或icepdf转换PDF为图片时,中文乱码问题
  • 原文地址:https://www.cnblogs.com/JRookie/p/10090048.html
Copyright © 2011-2022 走看看