《第4章 java面向对象程序设计(上)》由会员分享,可在线阅读,更多相关《第4章 java面向对象程序设计(上)(49页珍藏版)》请在金锄头文库上搜索。
1、第4章第4章 Java面向对象程序设计面向对象程序设计Java面向对象程序设计面向对象程序设计 (之之)(之之一一) 1 本章主要内容本章主要内容本章主要内容本章主要内容 面向对象的设计思想面向对象的设计思想 Java类的定义类的定义(属性属性方法方法)Java类的定义类的定义(属性属性、方法方法) 对象的创建和使用对象的创建和使用对象的创建和使用对象的创建和使用 构造方法构造方法 static、final package和和import语句语句package和和import语句语句 2 面向对象的基本思想面向对象的基本思想面向对象的基本思想面向对象的基本思想 面向对象是一种程序设计方法。面向
2、对象是一种程序设计方法。 基本思想:基本思想:使用对象、类、继承、封装、消息等使用对象、类、继承、封装、消息等 基本概念来进行程序设计基本概念来进行程序设计。基本概念来进行程序设计基本概念来进行程序设计。 优点:优点: 符合人们日常自然的思维习惯符合人们日常自然的思维习惯(因为它是因为它是从现实世界中从现实世界中符合人们日常自然的思维习惯符合人们日常自然的思维习惯(因为它是因为它是从现实世界中从现实世界中 客观存在的事物(即对象)出发来构造软件系统,并且客观存在的事物(即对象)出发来构造软件系统,并且 在系统构造中尽可能运用人类的自然思维方式在系统构造中尽可能运用人类的自然思维方式)。)。在系
3、统构造中尽可能运用人类的自然思维方式在系统构造中尽可能运用人类的自然思维方式)。)。 降低、分解问题的难度和复杂性,提高整个求解过程的 可 降低、分解问题的难度和复杂性,提高整个求解过程的 可控制性控制性、可监、可监视性视性、可、可扩充性扩充性和可和可维护性维护性控制性控制性视性视性扩充性维护性扩充性维护性 3 面向对象的概念面向对象的概念面向对象的概念面向对象的概念 所谓所谓面向对象的方法学面向对象的方法学,就是使我们分析就是使我们分析、设计设计所谓所谓面向对象的方法学面向对象的方法学,就是使我们分析就是使我们分析、设计设计 和实现一个系统的方法,尽可能地接近我们认识一个 系统的方法。包括:
4、 和实现一个系统的方法,尽可能地接近我们认识一个 系统的方法。包括: 面向对象的分析面向对象的分析(OOA, Object-Oriented Analysis) 面向对象的设计面向对象的设计(OOD Object-Oriented Design)面向对象的设计面向对象的设计(OOD, Object-Oriented Design) 面向对象的程序设计面向对象的程序设计(OOP, Object-Oriented Program) 面向对象技术主要围绕以下几个概念面向对象技术主要围绕以下几个概念面向对象技术主要围绕以下几个概念面向对象技术主要围绕以下几个概念: 对象对象、抽象数据类型抽象数据类型、
5、类类、类型层次类型层次(子类子类)对象对象、抽象数据类型抽象数据类型、类类、类型层次类型层次(子类子类) 继承性继承性、多态性多态性。 4 面向对象的概念面向对象的概念对象对象面向对象的概念面向对象的概念对象对象 对象对象有两个层次的概念有两个层次的概念 对象对象有两个层次的概念有两个层次的概念: 现实生活中对象指的是现实生活中对象指的是客观世界的实体客观世界的实体; 程序中对象就是一组程序中对象就是一组变量变量和和相关方法相关方法的集合,其中的集合,其中变 量表明对象的状态 变 量表明对象的状态,方法表明对象所具有的行为方法表明对象所具有的行为。 属性属性/变量变量属性属性 变量变量 att
6、ributes/variables 行为行为/方法方法 5 行为行为/方法方法 behaviors/methods 面向对象的概念面向对象的概念对象对象(续续)面向对象的概念面向对象的概念对象对象(续续) class Carclass Car String colour; 现实生活中的对象 String model; int fuelCapacity; 现实生活中的对象 可以将现实生活中的对可以将现实生活中的对 py; void start() 可以将现实生活中的对可以将现实生活中的对 象经过抽象,映射为程序 中的对象。对象在程序中 象经过抽象,映射为程序 中的对象。对象在程序中 过种抽象数类
7、型过种抽象数类型 void start() void stop() 是通是通过过一一种抽象数种抽象数据据类型类型 来描述的,这种抽象数据来描述的,这种抽象数据 类型称为类型称为类类(class) void move() 6 类型称为类型称为类类(class)。 面向对象的概念面向对象的概念类类面向对象的概念面向对象的概念类类 类类是描述对象的是描述对象的“基本原型基本原型”,它定义它定义类类是描述对象的是描述对象的基本原型基本原型,它定义它定义 一类对象所拥有的一类对象所拥有的属性属性和和行为行为。在面向对。在面向对 象的程序设计中象的程序设计中类是程序的基本单元类是程序的基本单元象的程序设计
8、中象的程序设计中,类是程序的基本单元类是程序的基本单元。 相似的对象可以归并到同相似的对象可以归并到同一一个类中去个类中去,相似的对象可以归并到同个类中去相似的对象可以归并到同个类中去, 就像传统语言中的变量与类型关系一样。就像传统语言中的变量与类型关系一样。 程序中的程序中的对象是类的一个实例对象是类的一个实例,是一个,是一个 软件单元软件单元,它由它由一一组结构化的数据组结构化的数据(变量变量)软件单元软件单元,它由组结构化的数据它由组结构化的数据(变量变量) 和在其上的一组操作(方法)构成。和在其上的一组操作(方法)构成。 7 类和对象关系举例类和对象关系举例类和对象关系举例类和对象关系
9、举例 C myCar:Car lbl Car colour:String colour= blue model= Fiesta fuelCapacity=45 model:String fuelCapacity:int start():void t()id start():void stop():void move(direction:String):void stop():void move(direction:String):void move(direction:String):void Car(colour: String, model: String, flCiti t)fuelCa
10、pacity:int) 8 对象对象是表示现实世界中某个具体的事物;是表示现实世界中某个具体的事物; 类类是对对象的是对对象的抽象描述抽象描述类类是对对象的是对对象的抽象描述抽象描述。 Car car1;Car car1; Car car2;Car car2; Car carN; ; 9 属性属性方法和消息方法和消息属性属性、方法和消息方法和消息 属性属性:描述对象的状态描述对象的状态属性属性:描述对象的状态描述对象的状态。 方法:方法:指对象的功能单元,行为。指对象的功能单元,行为。 消息消息消息消息 对象通过相互间传递消息来相互作用和通信,对象通过相互间传递消息来相互作用和通信, 一个消息
11、由三部分组成一个消息由三部分组成: 1. 接受消息的对象接受消息的对象 消息消息 1. 接受消息的对象接受消息的对象 2. 接收对象要采取的方法接收对象要采取的方法 3 方法需要的参数方法需要的参数3. 方法需要的参数方法需要的参数 对象对象B 对象对象A 10 对象对象A 面向对象程序设计的特点面向对象程序设计的特点面向对象程序设计的特点面向对象程序设计的特点 Alan KayAlan Kay(“面向对象编程之父面向对象编程之父”)AlanAlan KayKay(面向对象编程之父面向对象编程之父) 1 1 万物皆对象万物皆对象将对象想成种特殊的变量将对象想成种特殊的变量它它1 1. .万物皆
12、对象万物皆对象。将对象想成将对象想成一一种特殊的变量种特殊的变量,它它 存储数据,而且还可以让你“提要求”,命令它存储数据,而且还可以让你“提要求”,命令它 进行某些操作进行某些操作进行某些操作进行某些操作。 2.2.一个程序就是一组对象一个程序就是一组对象。对象相互之间传递。对象相互之间传递消 息 消 息,告诉对方该干做什么。或者说,消息是调用,告诉对方该干做什么。或者说,消息是调用 专属某个对象的方法的请求。专属某个对象的方法的请求。 11 面向对象程序设计的特点面向对象程序设计的特点(续续)面向对象程序设计的特点面向对象程序设计的特点(续续) 3 3 每个对象可以将其它对象作为自己的组成
13、部分每个对象可以将其它对象作为自己的组成部分3 3. .每个对象可以将其它对象作为自己的组成部分每个对象可以将其它对象作为自己的组成部分。 换言之,你通过将已有的对象打成一个包,来创换言之,你通过将已有的对象打成一个包,来创 建新的对象建新的对象由此由此你可以将程序的复杂性隐藏你可以将程序的复杂性隐藏建新的对象建新的对象。由此由此,你可以将程序的复杂性隐藏你可以将程序的复杂性隐藏 在对象的简单性之下。在对象的简单性之下。 4 4 对象都有类型对象都有类型任何对象都是某个类的实例任何对象都是某个类的实例4 4. .对象都有类型对象都有类型。任何对象都是某个类的实例任何对象都是某个类的实例 (in
14、stance of a class) 。用以区分类的最突出(instance of a class) 。用以区分类的最突出 的特点就是的特点就是“你能传给它什么消息你能传给它什么消息?”?”的特点就是的特点就是“你能传给它什么消息你能传给它什么消息?”?” 5.5.所有属于同一类型的对象能接受相同的消息。所有属于同一类型的对象能接受相同的消息。 12 Java的程序结构Java的程序结构 类类存在于存在于源文件源文件中中 Source file class类类存在于存在于源文件源文件中中 方法方法存在于存在于类类中中 class member variables 语句语句存在于存在于方法方法中
15、中 method1 method2 13 源文件和类源文件和类源文件和类源文件和类 源文件(源文件(如:如: Dog.java)带有Dog.java)带有类的类的 public class Dog 定义定义。 类类用来表示程序用来表示程序的一的一类类用来表示程序用来表示程序 个组件个组件 类的数量类的数量可多可少可多可少类的数量类的数量可多可少可多可少 类的内容类的内容必须包括在必须包括在 花括号里面花括号里面花括号里面花括号里面。 类类 14 类和方法类和方法类和方法类和方法 类中带有一个或多类中带有一个或多类中带有一个或多类中带有一个或多 个个方法方法 public class Dog void bark() 例如:例如:在Dog这个在Dog这个 类中类中,barkbark方法带方法带类中类中,方法带方法带 有如何“汪汪”的有如何“汪汪”的 指令指令指令指令。 方法必须方法必须在类的内在类的内 部定义部定义 方法方法 15 部定义部定义 方法和语句方法和语句方法和语句方法和语句 在方法的花括号在方法的花括号 中编写方法应该中编写方法应该 public class Dog void bark() 中编写方法应该中编写方法应该 执行的指令。执行的指令。 法代由组法代由组 statement1; t tt2