1.1、面向过程与面向对象
Java是一种面向对象的开发语言,所谓面向对象,其实市之软件工程的一种变成风格,很多人称之为开发范式、编程泛型。我们接触最多的还是面向对象和面向过程
1.1.1、什么是面向过程
面向过程是一种以过程为中心的编程思想,是一种自上而下的编程模式。在面向过程的开发范式中,程序员需要把问题分解成一个个步骤,每个步骤用函数实现,一次调用即可。
基于面向过程进行的软件开发,其代码都是流程化的,可以明确地看出第一步做什么、第二步做什么。这种方式的代码执行效率很高。但是,面向过程同时存在代码重用性低,扩展能力差、后期维护难度比较大的等问题。
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、多态
所谓多态,就是指一个类实例的相同方法在不同情形下有不同的表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。
1.3、面向对象的五大基本原则
- 单一职责原则
- 一个类最好只做一件事,只有一个引起它变化的原因。
- 开放封闭原则
- 软件实体应该事可扩展而不可修改的。也就是说,对扩展开放、对修改封闭。
- 对扩展开放,意味着当有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。
- 对修改封闭,意味着一旦设计完毕,就可以独立完成其工作,而不要对其进行任何尝试的修改。
- 软件实体应该事可扩展而不可修改的。也就是说,对扩展开放、对修改封闭。
- 里氏替换原则
- 子类必须能够替换其基类。
- 接口隔离原则
- 使用多个小的专门的接口,而不要使用一个大的总接口。
- 分离接口的手段:
- 委托分离,通过增加一个新的类型来委托客户的请求,隔离客户和接口的直接依赖,但是会增加系统的开销。
- 多重继承分离,通过接口多继承来实现客户的需求,这种事较好的方式。
- 分离接口的手段:
- 使用多个小的专门的接口,而不要使用一个大的总接口。
- 依赖倒置原则
- 程序要依赖于抽象接口,而不是具体的实现。简单来说,即使要对抽象进行编程,不要对实现进行编程。