资源描述:
《java语言程序设计(第三版,清华)第4章-java2实用教程ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第二章类与对象的基本概念Java2实用教程-4.2-4.7JAVA语言程序设计1目录2.1面向对象的程序设计方法概述2.2类与对象2.3对象初始化和回收2.4应用举例2.6本章小节22.1面向对象的程序设计方法概述面向对象的程序设计与结构化程序设计方法相比,更符合人类认识现实世界的思维方式已成为程序设计的主流方向涉及的主要概念抽象封装继承多态32.1面向对象的程序设计方法概述面向对象的程序设计结构化程序设计结构化方法的本质是功能分解,从代表目标系统整体功能的单个处理着手,自顶向下不断把复杂的处理分解为子处理结构化方法
2、是围绕实现处理功能的“过程”来构造系统用户的需求往往基于功能面向对象的方法学认为世界由各种对象(数据和对数据操作)组成,任何事物都是对象,是某个类的实例,复杂的对象可由较简单的对象的某种方式组成对象具有与现实世界的某种对应关系,正是利用这种关系对问题进行分解,与结构化程序设计方法相比,更符合人类认识现实世界的思维方式4对象现实世界中万物皆对象都具有各自的属性,对外界都呈现各自的行为程序中一切都是对象都具有标识(identity),属性和行为(方法)通过一个或多个变量来保存其状态通过方法(method)实现他的行为2.
3、1面向对象的程序设计方法概述(续)5类将属性及行为相同或相似的对象归为一类类可以看成是对象的抽象,代表了此类对象所具有的共有属性和行为在面向对象的程序设计中,每一个对象都属于某个特定的类类是面向对象程序设计的基本单位,程序运行时由类生产对象,对象之间通过发送消息进行通信类的四大特点:抽象、封装、继承、多态2.1面向对象的程序设计方法概述(续)62.1.1抽象抽象忽略问题中与当前目标无关的方面,以便更充分地注意与当前目标有关的方面如:驾驶员更关心汽车的属性、行为,而汽车的内部构造则不用去关心计算机软件开发中所使用的抽象
4、有过程抽象:将系统的功能划分为若干部分,按照“自顶向下方式逐步求精”,强调功能完成的过程和步骤,隐藏具体实现数据抽象:将系统中需要处理的数据和对数据的操作结合在一起,抽象成不同数据类型。面向对象程序设计主要特点就是采用了数据抽象的方法来构建程序的类及对象classXiyoujiRenwu{floatheight,weight;Stringhead,ear,hand,foot,mouth;voidspeak(Strings){System.out.println(s);}}publicclassClock{inthou
5、r,minute,second;publicvoidsetTime(intnewH,intnewM,intnewS){hour=newH;minute=newM;second=newS;}publicshowTime(){System.out.print(hour,minute,second);}}7例:钟表数据(属性)intHour;intMinute;intSecond;方法(行为)SetTime();ShowTime();2.1.1抽象(续)8例:人数据(属性)char*name;char*gender;int
6、age;intid;方法(行为)生物行为Eat(),Step(),…社会行为Work(),Study(),…2.1.1抽象(续)92.1.2封装封装是一种信息隐蔽技术,与数据抽象密切相关利用抽象数据类型将数据和基于数据的操作封装在一起用户只能看到对象的封装界面信息,对象的内部细节对用户是隐蔽的外界需要访问类里的数据需要通过接口进行封装的目的在于将对象的使用者和设计者分开,使用者不必知道行为实现的细节,只需使用设计者提供的消息来访问对象10封装的定义清楚的边界所有对象的内部信息被限定在某个边界内接口对象向外界提供的方法
7、,外界可以通过这些方法与对象进行交互受保护的内部实现功能的实现细节不能从类外访问。2.1.2封装(续)11封装的意义在面向对象的程序设计中,类封装了数据及对数据的操作,是程序中的最小模块禁止了外界直接操作类中的数据,模块与模块之间只能通过严格控制的接口进行交互,这使得模块之间的偶合度大大降低,保证了模块具有较好的独立性防止程序员接触不该接触的内容-设计思想允许设计人员对库内部结构进行修改,而不会对用户程序造成影响程序维护和修改较为容易2.1.2封装(续)122.1.3继承继承是指新的类可以获得已有类(称为超类、基类或
8、父类)的属性和行为,称新类为已有类的派生类(也称为子类),体现了面向对象设计方法的共享机制在继承过程中派生类继承了基类的特性,包括方法和实例变量派生类也可修改继承的方法或增加新的方法,使之更适合特殊的需要有助于解决软件的可重用性问题,使程序结构清晰,降低了编码和维护的工作量13单继承任何一个派生类都只有单一的直接父类类层次结构为树状结构多继承一