欢迎来到天天文库
浏览记录
ID:57057935
大小:122.00 KB
页数:16页
时间:2020-07-30
《java第3章_面向对象程序设计基础课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第3章面向对象程序设计基础1面向对象的概念所谓面向对象的方法,就是使我们分析、设计和实现一个系统的方法尽可能自然地使用我们在生活中用到的以对象为中心的思想,分析、认识、设计一个系统的方法。包括:面向对象的分析(OOA,Object-OrientedAnalysis)面向对象的设计(OOD,Object-OrientedDesign)面向对象的程序设计(OOP,Object-OrientedProgram)面向对象技术主要围绕以下几个概念讨论:对象的封装(抽象数据类型)、类与对象、继承性、多态性。2变量方法面向对象的概念对象(Object)
2、有两个层次的概念:现实生活中对象指的是客观世界的实体,它由特征(feature)和行为(Behavior)构成;程序中的对象是现实世界对象的模型,是一组变量和相关方法的集合。变量(Variables)表示现实对象的状态,方法(Methods)表现现实世界对象的行为,这些变量和方法叫做这个对象的成员(Member)。3现实生活中的对象ClassCar{intcolor_number;intdoor_number;intspeed;voidbrake(){…}voidspeedUp(){…}voidslowDown(){…}}抽象数据类型面向
3、对象的概念可将现实生活中的对象经过抽象,映射为程序中的对象。对象在程序中通过一种抽象数据类型来描述,就称为类(Class)。4面向对象的概念类(Class)类是描述对象的“基本原型”,它定义一类对象所能拥有的数据和能完成的操作。在面向对象的程序设计中,类是程序的基本单元。相似的对象可以归并到同一个类中去,就像传统语言中的变量与数据类型关系一样。对象程序中的对象是类的一个实例,是一个软件单元,它由一组结构化的数据和在其上的一组操作构成。5……Carcar1;Carcar2;……CarcarN;面向对象的概念6面向对象的概念为什么使用类采用简
4、单数据类型表示现实世界中概念存在一些局限性。例如:采用int型数据表示一个日期概念,需要使用3个变量:intday,month,year;如果要表示2个人的生日,就要使用6个变量:intmybirthday,mybirthmonth,mybirthyear;intyourbirthday,yourbirthmonth,yourbirthyear;7classBirthDate{privateintday,month,year;publicinttomorrow(){……}}BirthDatemybirth,yourbirth;面向对象的概
5、念将变量和方法封装在一个类中,可以对成员变量进行隐藏,外部对类成员的访问都通过方法进行,能够保护类成员不被非法修改。BirthDatedate;已知当前日期对象,求第2天的日期对象:date.day=date.day+1;如果date.day已经为31,操作结果是非法状态。可以定义一个成员方法tomorrow(),求第2天的日期对象。外部要获得当前日期的后一天时,只要调用:date.tomorrow();8对象B对象A消息面向对象的概念类的变量(ClassVariables):指对象的所具有的状态或特征。类的方法(ClassMethods
6、):指对象的功能单元。消息(Message):软件对象通过相互间传递消息来相互作用和通信,一个消息由三部分组成:1.发送消息的对象2.接收发送消息(调用发送对象的方法)3.方法需要的参数9一个例子在程序中操作对象是类的一个实例。创建一个对象:Helloobj=newHello();调用方法:obj.showString();classHello{}privateStrings;publicvoidshowString(){System.out.println(s);}publicvoidchangeString(Stringstr){s=
7、str;}变量方法showString()方法changeString()面向对象的概念10对象A对象B私有数据方法方法数据公有数据面向对象的概念封装(Encapsulation)封装把对象的所有组成部分组合在一起。封装定义程序如何引用对象的数据,实际上是用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。封装利于模块化和信息隐藏。11bicycle(Superclass)MountainbikesRacingbikesTandembikesSubclass1、面向对象的概念子类(Subclass)子类是作为另一个类的扩充或修正
8、而定义的一个类。12classCar{intcolor_number;intdoor_number;intspeed;publicvoidpush_break(){…}publicvoidad
此文档下载收益归作者所有