面向对象的相关知识点

1.类与对象:

  1)类:类是抽象的概念集合,表示的是一个共性的产物,类之中定义的是属性和行为(方法)。

  2)对象:对象是一种个性的表示,表示一个独立的个体,每个对象拥有自己独立的属性,依靠来区别不同对象。

  3)类是对象的定义,对象是类的实例化。

2.封装、继承、多态:

  1)封装:把类(对象)的属性和行为结合成一个独立的相同单位,并尽可能的把类(对象)的内部细节隐蔽起来,对外形成一个边界,只保留有限的对外接口使之与外界发生联系。

  封装的作用:使得类(对象)以外的部分不能随意存取类(对象)的内部数据(属性),保证了程序和数据不受外部干扰且不被误用。

  2)继承:可以更好的实现代码的复用性。同时Java的继承具有单继承的特点,即只能继承自一个父类,每个子类只有一个直接父类,但是其父类又可以继承于另一个类,从而实现了子类可以间接继承多个父类,但其本质上划分仍然是一个父类和子类的关系。

  3)多态:通俗点讲就是多种形态,例子:一个老师的接口,一个Java老师的类去实现老师的接口,一个.net老师的类去实现老师的接口,就是说多个具体的类去实现一个未知(抽象)的接口。本质上讲允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数的调用)

  多态的作用:消除类型之间的耦合关系。

  好处:1)可替换性:多态对已存在代码具有可替换性。

     2)可扩充性:多态对代码具有可扩充性。增加新的子类不影响已存在类的多态性、继承性,以及其他特性的运行和操作。实际上新加子类更容易获得多态功能。

     3)接口性:多态是超类通过方法签名,向子类提供了一个共同接口,由子类来完善或者覆盖它而实现的。

     4)灵活性:它在应用中体现了灵活多样的操作,提高了使用效率。

     5)简化性:多态简化对应用软件的代码编写和修改过程,尤其在处理大量对象的运算和操作时,这个特点尤为突出和重要。

3.protected修饰符的作用:在同包的类中继承方式或者创建类方式都可以调用类中的protected修饰的方法,则在不同包的类中继承方式可以直接调用protected修饰的方法,不可以通过创建方式调用protected修饰的方法。

4.抽象类与接口:

  1)抽象类:

    a)不能实例化,有抽象方法。

    b)核心作用专门用于被继承。

    c)使用abstract修饰。

    d)当一个类没有完整去描述一个对象的属性或行为,那它就是一个抽象类。

  2)接口:

    a)核心职责是定义功能的抽象标准。

    b)利用接口可以很好的利用扩展性。

5.UML中的类图:

  关系表示:

    1)继承:实线加空心三角形。

    2)实现:虚线加空心三角形。

    3)依赖:虚线加箭头。

    4)组合关联:实心菱形加实线。

    5)聚合关联:空心菱形加实线。

6.SOLID是面向对象设计和编程中几个重要编码原则的首字母缩写:

  1)单一职责原则(SRP):表明一个类有且只有一个职责,如果一个类中有多个方法,只要有微小的改动,就有可能影响其他的方法。

  2)开封闭原则(OCP):修改或者增强软件的功能时,通过增加代码来达成是允许的(开放的,opened),而通过修改代码来达成是不可以的(闭合的,closed),这样就违反了开闭原则。

  3)依赖倒转置原则(DIP):细节应该依赖于抽象,抽象不应该依赖于细节(细节可以理解为具体的类,抽象可以理解为抽象类或接口)。

  4)里氏替换原则(LSP):

    通俗定义:所有引用基类的地方必须能透明地使用其子类的对象。

    更通俗的定义:子类可以扩展父类的功能,但不能改变父类原有的功能。

    里氏替换原则包含一下4层含义:

      1.子类可以实现父类的抽象方法,但是不能覆盖父类的非抽象方法。

      2.子类中可以增加自己特有的方法。

      3.当子类覆盖或实现父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。

      4.当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。

  5)接口隔离原则(ISP):

    举个例子说明:采用多个与特定客户类有关的接口比采用一个通用的涵盖多个业务方法的接口更好。

7.类之间的关系:关联(association)、依赖(dependency)、聚合(Aggregation,也有的称聚集)、组合(Composition)、泛化(generalization,也有的称继承)、实现(Realization)。

posted @ 2017-12-04 16:17  創業尋找者  阅读(248)  评论(0编辑  收藏  举报