欢迎来到天天文库
浏览记录
ID:58888487
大小:157.00 KB
页数:66页
时间:2020-09-30
《CH4 Java 语言中面向对象特性ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Java语言中面向对象特性一切皆对象thinkinjava面向对象编程的基本概念和特征什么是oop?为什么要oop?Oop的一些基本概念Oop的一些准则1例子:栈是一种由若干个按线性次序排列的元素所构成的复合数据,对栈只能实施两种操作:进栈(增加一个元素)和退栈(删除一个元素),并且这两个操作必须在栈的同一端(栈顶)进行。后进先出(LIFO)是栈的一个重要性质。1)非面向对象方案structStack{inttop;intbuffer[STACK_SIZE];};voidinit(Stack&s){s.top=-1;}bo
2、olpush(Stack&s,inti);{if(s.top==STACK_SIZE-1){cout<<“Stackisoverflow.”;returnfalse;}else{s.top++;s.buffer[s.top]=i;returntrue;}}boolpop(Stack&s,int&i){if(s.top==-1){cout<<“Stackisempty.”;returnfalse;}else{i=s.buffer[s.top];s.top--;returntrue;}}……Stackst;intx;in
3、it(st);push(st,12);pop(st,x);或,st.top=-1;st.top++;st.buffer[st.top]=12;x=st.buffer[st.top];st.top--;2)面向对象方案classStack{inttop;intbuffer[STACK_SIZE];public:Stack(){top=-1;}boolpush(inti);{if(top==STACK_SIZE-1){cout<<“Stackisoverflow.”;returnfalse;}else{top++;buffe
4、r[top]=i;returntrue;}}boolpop(int&i);{if(top==-1){cout<<“Stackisempty.”;returnfalse;}else{i=buffer[top];top--;returntrue;}}};Stackst;intx;st.push(12);st.pop(x);st.top=-1;//errorst.top++;//errorst.buffer[st.top]=12;//error3)两种方案的简单比较方案1)中对栈的操作可以通过提供的函数来实现,也可以直接在栈的
5、数据表示上直接进行;方案2)中只能通过提供的函数来操作栈。直接操作数据的弊病在于:不安全,易产生错误,并且定位错误较为困难。一旦数据表示发生变化,将影响所有的操作。方案1)需要显式地对栈进行初始化,方案2)则否。2定义面向对象程序设计是把程序构造成由若干对象组成,每个对象由一些数据和对这些数据所实施的操作构成;对数据的操作是通过向包含数据的对象发送消息来实现(调用对象的操作);对象的特性(数据与操作)由(对象)类来描述,一个类的特性可以从其它的类继承。上述的定义包含了下面的基本概念:对象:对象式计算的基本单位,由:接口,数据
6、,操作构成。通信:引起对象式计算的唯一方式。类:对象特性的描述。继承:复用机制。到底什么是面向对象程序设计?面向对象程序设计是软件系统设计与实现的新方法,这种新方法是通过增加软件可扩充性和可重用性,来改善并提高程序员的生产能力,并控制维护软件的复杂性和软件维护的开销。首先讨论一下结构化程序设计。1.什么是结构化程序设计(StructureProgramming) 结构化程序设计是上个世纪60年代诞生的,在70年代到80年代已遍及全球,成为所有软件开发设计领域及每个程序员都采用的程序设计方法,它的产生和发展形成了现代软
7、件工程的基础。结构化程序设计的设计思路是:自顶向下、逐步求精;其程序结构是按功能划分若干个基本模块,这些模块形成一个树状结构;各模块之间的关系尽可能简单,在功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成;其模块化实现的具体方法是使用子程序。结构化程序设计方法虽然具有很多的优点,但它仍是一种面向数据/过程的设计方法,它把数据和过程分离为相互独立的实体,程序员在编程时必须时刻考虑所要处理的数据的格式。对于不同的数据格式即使要做同样的处理或对相同的数据格式要做不同的处理都需编写不同的程序。因此结构化程序的可重用
8、性不好。另一方面,当数据和过程相互独立时,总存在着用错误的数据调用正确的程序模块或用正确的数据调用了错误的程序模块的可能性。因此,要使数据与程序始终保持相容,已经成为程序员的一个沉重负担。上述这些问题,结构化程序设计方法本身是解决不了的,它需要借助于我们下面要讨论的面向对象程序设计方法给予
此文档下载收益归作者所有