前言:Java语言是纯粹面向对象的程序设计语言,主要表现为Java完全支持面向对象的三种基本特征:继承、封装和多态。完全以对象为中心,最小程序单位是类。
面向对象的方式实际上由OOA(面向对象分析)、OOD(面向对象设计)、OOP(面向对象编程)三个有机部分组成。其中统一采用UML(统一建模语言)描述和记录OOA和OOD的结果。
两种主流的开发方法:结构化开发方法(C、Basic、Pascal)和面向对象开发方法(如C++、Ruby、C#、Java等)。
(一)结构化程序设计
最小的程序单位是函数。
目前暂且不写,之后用到再进行补充。
(二)程序的三种基本结构
稍微提一下GOTO吧,在很久很久以前…..额,,很多编程语言都提供了GOTO语句,使用非常灵活,但随之而来的是因太随意导致软件的可读性和修改性极差 。因此Java语言是拒绝使用GOTO语言,但将GOTO作为保留字,留了点后路。
1996年,Bohm和Jacopini证明了:任何算法都可由顺序结构、选择结构、循环结构组成。
1.顺序结构
2.选择结构
分为单选择、双选择、多选择
3.循环结构
当型结构:“当条件为真时执行循环”;
直到型循坏:“直到条件为假时结束循环”。
可以看出呢,结构化程序设计任何结构都具有唯一入口和唯一出口,不会出现死循环。Java虽然是面向对象的,但Java方法则是一种结构化的程序流。
(三)面向对象程序设计简介
面向对象的基本思想是使用类、对象、继承、封装、消息等基本概念来进行程序设计。
其软件系统是由多个类组成,用类封装内部的状态数据:类定义=方法(行为)+状态数据。
对象是类的实例:类是对象的抽象(结合下面的抽象解释理解)。
(四)面向对象的基本特征
1.封装(encapsulation):将对象的实现细节隐藏,通过公用的方式暴露功能;
2.继承(inheritance):实现软件复用的功能,分为单继承和多继承(一个类允许有多个直接父类,Java不支持);
3.多态(polymorphism):同一类对象在执行同一个方法时,可能表现出多种行为特征。
抽象:重要部分,但不是面向对象的特征之一,因为所有的编程语言都需要抽象。抽象就是只注重考虑所关心的部分问题,不会考虑全部问题。
消息:是对象与对象之间的通信,即一个实例与另一个实例通信的机制。
与“基于对象”区别:基于对象没有继承的特征,当然也就没有了多态的特征。如js语言
同样的我们程序员分为“类库的创建者”和“类库的使用者”。
自己对面向对象的通俗理解:
比如家里养了两只猫,一只公猫,属于波斯猫,一只母猫,属于狸花猫。 那么这两只猫就是对象,不管两只多不一样都属于猫科类。
两只猫都有毛色,形态等,这就是类。
公猫呢,有一双蓝色眼睛,长相精致,行为温和,像君子;
母猫呢,有黄色的眼睛,毛稍短,好动好打架。
那么我们看到的是猫的整体特征,是好动还是温和,是蓝眼睛还是黄眼睛。至于是什么细胞,哪个成分导致这种差异我们不知道不需要了解,这就是封装。类呢就封装了猫的各种能力和特点。
如果两只猫看对眼了,在一块,生了一窝小猫崽,这些小猫崽身上都会有公母猫的一部分特性,这就是继承;当然这一窝小猫呢,性格啊,毛色啊,不是完全一样的,那么这就是多态。
初学的理解,之后不断深入,再不断修改描述。。