类和对象(上)第一页,共十六页。类和对象•程序设计简史•面向对象的思想•类的定义•对象的创建和使用•final、static关键字、常量12/20/20242类和对象(上)第二页,共十六页。程序设计简史–过程式程序设计–结构化程序设计–面向对象程序设计(OO)–面向方面程序设计(AOP)12/20/20243类和对象(上)第三页,共十六页。对象1对象就是我们周围的各种各样的事物。例如:衣服、盘子、宠物、朋友、电脑等。每个对象都有一些状态(属性)。例如:衣服:{颜色,长度,面料…}。猫:{名字,情绪,饥饿,}。有些对象会作出一些行为。例如:猫:{名字,情绪,疲劳,饥饿…发怒,玩耍,吃食,睡觉…}。对象的行为会改变对象的状态。例如:玩耍→疲劳=True睡觉→疲劳=False吃食→饥饿=False对象的状态会影响对象的行为。例如:if(饥饿==False)→吃食returnfailure面向对象的程序设计与我们人类观察客观事物的模式相同:用类表示客观事物,用类中的变量表示事物的属性,用函数(方法)表示事物的行为,属性与行为相互作用。12/20/20244类和对象(上)第四页,共十六页。抽象(分析与设计)•抽象:就是对事物的状态、行为进行概括、总结、描述。•软件开发过程可分为五个阶段:分析、设计、实现、测试、发布。抽象对应于软件工程的分析、设计阶段。•分析:就是确定我们开发的系统想要实现什么。在分析阶段可以定义一组操作者,以及系统必须完成的行为。此外,还要定义一组主对象,系统在主对象之间完成操作、行为、交互。行为的描述要足够详细。•设计:就是确定系统如何实现要达到的目标。在设计阶段,要生成操作者、行为、主对象的模型。•例如,我们可以对一个轮船公司的软件工程作出下面的抽象:•软件必须支持一个轮船公司。•轮船公司保持一队运输集装箱的交通工具。•在调出一个交通工具时,集装箱的重量是唯一的重要因素。•轮船公司有两种类型的交通工具:卡车和内河驳船。•集装箱用千克标重,计算交通工具的引擎功率时,需要用牛顿表示的交通工具的总重量。•图形用户接口用来跟踪向交通工具中装载的集装箱。•一些报表用来生成车/船队的记录。•凭借这些需求分析,我们可以作出高水平的设计:•系统中必须用对象表示公司、两种交通工具。•公司是多个交通工具对象的集合。•还应该包括报表、图形用户接口等对象。12/20/20245类和对象(上)第五页,共十六页。类是对象的蓝图•如同绘图员可以绘制设备的蓝图,蓝图可以在制造实际设备时使用很多次。类是软件的蓝图,你可以用类,来实例化许许多多个别的对象。在类中定义了一套数据元素(属性)和一套行为(方法)。行为用来操作对象,以及完成相关对象之间的交互。属性和方法都叫做成员。例如交通工具对象必须保存两个属性:最大载重量和当前载重量;装载集装箱的方法要始终跟踪这两个属性。12/20/20246类和对象(上)第六页,共十六页。面向对象的思想•面向对象的编程思想力图使对计算机语言中对事物的的描述与现实世界中该事物的本来面目尽可能的一致。•类(class)和对象(object)是面向对象方法的核心概念。类是对一类事物描述,是抽象的、概念上的定义;对象是实际存在的该类事物的每个个体,因而也称实例(instance)。•EverythingisObject:万事万物皆对象。12/20/20247类和对象(上)第七页,共十六页。类的定义•类(Class)是用来描述一个对象(Object):•类包括两方面的内容:–属性:用来描述对象的数据元素称为对象的属性(也称为数据/状态)–方法:对对象的属性进行的操作称为对象的方法(也称为行为/操作)12/20/20248类和对象(上)第八页,共十六页。类的定义(例CarObject.java)•以一个“汽车”实体为例,来说明类的定义•汽车的属性:–出厂编号总数发动机类型最高速度当前状态当前速度油量……•汽车的基本操作:–启动关闭加速减速……识别类的简单规则:名词—属性动词—方法12/20/20249类和对象(上)第九页,共十六页。类的定义(例CarObject.java)publicclassCarObject{privateintengineType;privateintcurrentSpeed;……publicCarObject(){……}publicCarObject(intengineType,intbodyType,inttopSpe...