1.1、面向过程与面向对象

Java是一种面向对象的开发语言,所谓面向对象,其实市之软件工程的一种变成风格,很多人称之为开发范式、编程泛型。我们接触最多的还是面向对象和面向过程

1.1.1、什么是面向过程

面向过程是一种以过程为中心的编程思想,是一种自上而下的编程模式。在面向过程的开发范式中,程序员需要把问题分解成一个个步骤,每个步骤用函数实现,一次调用即可。

img

基于面向过程进行的软件开发,其代码都是流程化的,可以明确地看出第一步做什么、第二步做什么。这种方式的代码执行效率很高。但是,面向过程同时存在代码重用性低,扩展能力差、后期维护难度比较大的等问题。

1.1.2、什么是面向对象

把属性和行为封装成对象,然后基于这些对象及对象的能力实现业务逻辑。比如,想要造一两车,首先要定义车的各种属性,然后将各种属性封装在一起,抽象成一个Car类。

1.2、面向对象的三大基本特征

三大基本特征:封装、继承和多态

1.2.1、封装

把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的类或者对象隐藏信息。一个类就是一个封装了数据及操作这些数据的代码的逻辑实体。

/**
*矩形
*/
class Rectangle{
    /**
    *设置矩形的长度和宽度
    */
    public Rectangle(int length,int width){
        this.length=length;
        this.width=width;
    }
    /**
    *长度
    */
    private int length;
    /**
    *宽度
    */
    private int width;
    /**
    *获得矩形面积
    *
    *@return
    */
    public int area(){
        return this.length*this.width;
	}
}

1.2.2、继承

继承是至这样一种能力:它可以使用现有类的所有功能,并在无须重写原来的类的情况下对这些功能进行扩展

/**
*正方形
*/
class Square extends Rectangle{
    
    /**
    *设置正方形边长
    *
    *@param length
    */
    public Square(int length){
        super(length,length);
	}
}

1.2.3、多态

所谓多态,就是指一个类实例的相同方法在不同情形下有不同的表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。

img

1.3、面向对象的五大基本原则

  1. 单一职责原则
    • 一个类最好只做一件事,只有一个引起它变化的原因。
  2. 开放封闭原则
    • 软件实体应该事可扩展而不可修改的。也就是说,对扩展开放、对修改封闭。
      • 对扩展开放,意味着当有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。
      • 对修改封闭,意味着一旦设计完毕,就可以独立完成其工作,而不要对其进行任何尝试的修改。
  3. 里氏替换原则
    • 子类必须能够替换其基类。
  4. 接口隔离原则
    • 使用多个小的专门的接口,而不要使用一个大的总接口。
      • 分离接口的手段:
        1. 委托分离,通过增加一个新的类型来委托客户的请求,隔离客户和接口的直接依赖,但是会增加系统的开销。
        2. 多重继承分离,通过接口多继承来实现客户的需求,这种事较好的方式。
  5. 依赖倒置原则
    • 程序要依赖于抽象接口,而不是具体的实现。简单来说,即使要对抽象进行编程,不要对实现进行编程。