Java语言中面向对象特性.ppt
《Java语言中面向对象特性.ppt》由会员分享,可在线阅读,更多相关《Java语言中面向对象特性.ppt(41页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java 语言中面向对象特语言中面向对象特性性TA:栗志果n n一切皆对象 think in java 面向对象编程的基本概念和特征面向对象编程的基本概念和特征l l什么是oop?l l为什么要oop?l l Oop的一些基本概念的一些基本概念l lOop的一些准则的一些准则n n1 1 例子:栈例子:栈例子:栈例子:栈n n1)1)非面向对象方案非面向对象方案非面向对象方案非面向对象方案n nstruct Stackstruct Stackn n int top;int top;n n int bufferSTACK_SIZE;int bufferSTACK_SIZE;n n ;n nvoi
2、d init(Stack&s)void init(Stack&s)n n s.top=-1;s.top=-1;n n n nbool push(Stack&s,int i);n n if(s.top=STACK_SIZE-1)n n cout “Stack is overflow.n”;n n return false;n nn n n nelsen n s.top+;n ns.buffers.top=i;n n return true;n n n nn nbool pop(Stack&s,int&i)n n if(s.top=-1)n n cout“Stack is empty.n”;n n
3、 return false;n nn n n nelse n n i=s.buffers.top;n ns.top-;n n return true;n nn nn nn nStack st;n nint x;n ninit(st);n npush(st,12);n npop(st,x);n n2)2)面向对象方案面向对象方案面向对象方案面向对象方案n nclass Stackclass Stackn n n nPrivate:Private:n n int top;int top;n n int bufferSTACK_SIZE;int bufferSTACK_SIZE;n n public
4、:public:n nStack()top=-1;Stack()top=-1;n n bool push(int i);bool push(int i);n n if(top=STACK_SIZE-1)if(top=STACK_SIZE-1)n n cout “Stack is overflow.n”;cout “Stack is overflow.n”;n n return false;return false;n n n n elsen n top+;n nbuffertop=i;n n return true;n n n nn n n nbool pop(int&i);bool pop(
5、int&i);n n if(top=-1)if(top=-1)n n cout “Stack is empty.n”;cout “Stack is empty.n”;n n return false;return false;n n n n else else n n i=buffertop;i=buffertop;n n top-;top-;n n return true;return true;n n n n n n;n nStack st;n nint x;n nst.push(12);n nst.pop(x);n nst.top=-1;/errorn nst.top+;/errorn
6、nst.bufferst.top=12;/errorn n3)3)两种方案的简单比较两种方案的简单比较两种方案的简单比较两种方案的简单比较n n方案方案方案方案1)1)中对栈的操作可以通过提供的函数来实现,中对栈的操作可以通过提供的函数来实现,中对栈的操作可以通过提供的函数来实现,中对栈的操作可以通过提供的函数来实现,也可以直接在栈的数据表示上直接进行;方案也可以直接在栈的数据表示上直接进行;方案也可以直接在栈的数据表示上直接进行;方案也可以直接在栈的数据表示上直接进行;方案2)2)中只能通过提供的函数来操作栈。中只能通过提供的函数来操作栈。中只能通过提供的函数来操作栈。中只能通过提供的函数来
7、操作栈。n n直接操作数据的弊病在于:直接操作数据的弊病在于:直接操作数据的弊病在于:直接操作数据的弊病在于:n n不安全,易产生错误,并且定位错误较为困难。不安全,易产生错误,并且定位错误较为困难。不安全,易产生错误,并且定位错误较为困难。不安全,易产生错误,并且定位错误较为困难。n n一旦数据表示发生变化,将影响所有的操作。一旦数据表示发生变化,将影响所有的操作。一旦数据表示发生变化,将影响所有的操作。一旦数据表示发生变化,将影响所有的操作。n n方案方案方案方案1)1)需要显式地对栈进行初始化,方案需要显式地对栈进行初始化,方案需要显式地对栈进行初始化,方案需要显式地对栈进行初始化,方案
8、2)2)则否。则否。则否。则否。n n2 定义定义n n面向对象程序设计是把程序构造成由若面向对象程序设计是把程序构造成由若干对象组成,每个对象由一些数据和对这干对象组成,每个对象由一些数据和对这些数据所实施的操作构成;对数据的操作些数据所实施的操作构成;对数据的操作是通过向包含数据的对象发送消息来实现是通过向包含数据的对象发送消息来实现(调用对象的操作调用对象的操作);对象的特性;对象的特性(数据与操数据与操作作)由由(对象对象)类来描述,一个类的特性可以类来描述,一个类的特性可以从其它的类继承。从其它的类继承。n n n n上述的定义包含了下面的基本概念:上述的定义包含了下面的基本概念:n
9、 n对象:对象式计算的基本单位,由:接口,数对象:对象式计算的基本单位,由:接口,数对象:对象式计算的基本单位,由:接口,数对象:对象式计算的基本单位,由:接口,数据,操作构成。据,操作构成。据,操作构成。据,操作构成。n n通信:引起对象式计算的唯一方式。通信:引起对象式计算的唯一方式。通信:引起对象式计算的唯一方式。通信:引起对象式计算的唯一方式。n n类:对象特性的描述。类:对象特性的描述。类:对象特性的描述。类:对象特性的描述。n n继承:复用机制。继承:复用机制。继承:复用机制。继承:复用机制。为什么要为什么要oop?n n一个好的软件开发方法或技术的评价标准:一个好的软件开发方法或
10、技术的评价标准:开发效率和软件质量保证。开发效率和软件质量保证。n n开发效率指方法使用的难易程度和方法缩开发效率指方法使用的难易程度和方法缩短开发周期的程度等。短开发周期的程度等。n n软件质量包括:外部质量和内部质量。软件质量包括:外部质量和内部质量。n n外部质量:软件中与用户有关的质量因素,这外部质量:软件中与用户有关的质量因素,这外部质量:软件中与用户有关的质量因素,这外部质量:软件中与用户有关的质量因素,这里的用户包括最终用户和二次开发用户。包括:里的用户包括最终用户和二次开发用户。包括:里的用户包括最终用户和二次开发用户。包括:里的用户包括最终用户和二次开发用户。包括:正确性正确
11、性正确性正确性(Correctness)(Correctness)、效率、效率、效率、效率(Efficiency)(Efficiency)、健壮、健壮、健壮、健壮性或鲁棒性性或鲁棒性性或鲁棒性性或鲁棒性(Robustness)(Robustness)、可靠性、可靠性、可靠性、可靠性(Reliability)(Reliability)、可用性可用性可用性可用性(Usability)(Usability)和可复用性和可复用性和可复用性和可复用性(Reusability)(Reusability)等方等方等方等方面。面。面。面。n n内部质量:软件中与软件开发人员有关的质量内部质量:软件中与软件开发
12、人员有关的质量内部质量:软件中与软件开发人员有关的质量内部质量:软件中与软件开发人员有关的质量因素。包括:可读性因素。包括:可读性因素。包括:可读性因素。包括:可读性(Readability)(Readability)和可维护性和可维护性和可维护性和可维护性(maintainability)(maintainability)等。等。等。等。n n外部质量靠内部质量来保证。外部质量靠内部质量来保证。外部质量靠内部质量来保证。外部质量靠内部质量来保证。n n下面就能够保证软件质量的几个程序设计下面就能够保证软件质量的几个程序设计机制来说明面向对象程序设计的优势:机制来说明面向对象程序设计的优势:n
13、 n1 抽象抽象(Abstraction)处理大而复杂问题的重要手段是抽象:强调处理大而复杂问题的重要手段是抽象:强调事物本质的东西。对程序抽象而言,一个事物本质的东西。对程序抽象而言,一个语言结构的抽象强调的是该结构外部可观语言结构的抽象强调的是该结构外部可观察到的行为,与该结构的内部实现无关。察到的行为,与该结构的内部实现无关。n n过程抽象过程抽象(Procedural Abstraction)结构化程序设计是其典型代表。结构化程序设计是其典型代表。结构化程序设计是其典型代表。结构化程序设计是其典型代表。把子程序的接口和实现分开,使用者只需要知道子程序把子程序的接口和实现分开,使用者只需
14、要知道子程序把子程序的接口和实现分开,使用者只需要知道子程序把子程序的接口和实现分开,使用者只需要知道子程序 的接口的接口的接口的接口(功能和参数功能和参数功能和参数功能和参数)而不需要关心其内部实现,适合于而不需要关心其内部实现,适合于而不需要关心其内部实现,适合于而不需要关心其内部实现,适合于 基于功能分解的逐步精化基于功能分解的逐步精化基于功能分解的逐步精化基于功能分解的逐步精化(Step-wise)(Step-wise)程序设计程序设计程序设计程序设计。过程抽象的不足之处在于:过程抽象的不足之处在于:过程抽象的不足之处在于:过程抽象的不足之处在于:pp数据与操作的描述分离。数据与操作的
15、描述分离。数据与操作的描述分离。数据与操作的描述分离。pp数据缺乏保护。数据缺乏保护。数据缺乏保护。数据缺乏保护。pp不能适应需求的改变。不能适应需求的改变。不能适应需求的改变。不能适应需求的改变。n n数据抽象数据抽象(Data Abstraction)以数据为中心,把数据及其操作作为一个整体以数据为中心,把数据及其操作作为一个整体以数据为中心,把数据及其操作作为一个整体以数据为中心,把数据及其操作作为一个整体(对象)来进行描述,对数据的操作由包含数据(对象)来进行描述,对数据的操作由包含数据(对象)来进行描述,对数据的操作由包含数据(对象)来进行描述,对数据的操作由包含数据的对象来提供。的
16、对象来提供。的对象来提供。的对象来提供。面向对象程序设计强调的是数据抽象,一方面向对象程序设计强调的是数据抽象,一方面加强了数据保护,另一方面实现了对现面加强了数据保护,另一方面实现了对现实世界活动的直接模拟,能较好地适应需实世界活动的直接模拟,能较好地适应需求的变化。不足之处在于:对系统的整体求的变化。不足之处在于:对系统的整体功能缺乏清楚的描述。功能缺乏清楚的描述。n n 2 封装封装(Encapsulation)把一个语言结构的具体实现细节作为一个黑匣子把一个语言结构的具体实现细节作为一个黑匣子把一个语言结构的具体实现细节作为一个黑匣子把一个语言结构的具体实现细节作为一个黑匣子对该结构的
17、使用者隐藏起来的一种机制,从而符对该结构的使用者隐藏起来的一种机制,从而符对该结构的使用者隐藏起来的一种机制,从而符对该结构的使用者隐藏起来的一种机制,从而符合信息隐藏合信息隐藏合信息隐藏合信息隐藏(Information Hiding)(Information Hiding)原则原则原则原则。封装考虑的是内部实现,抽象考虑的是外部行为。封装考虑的是内部实现,抽象考虑的是外部行为。封装考虑的是内部实现,抽象考虑的是外部行为。封装考虑的是内部实现,抽象考虑的是外部行为。n n过程封装过程封装过程封装过程封装n n实现了操作的封装,而数据是公开的。实现了操作的封装,而数据是公开的。实现了操作的封装
18、,而数据是公开的。实现了操作的封装,而数据是公开的。n n 数据封装数据封装数据封装数据封装n n实现了数据及其操作的封装。实现了数据及其操作的封装。实现了数据及其操作的封装。实现了数据及其操作的封装。n n面向对象程序设计强调的是数据封装面向对象程序设计强调的是数据封装面向对象程序设计强调的是数据封装面向对象程序设计强调的是数据封装。面向对象的基本概念面向对象的基本概念n n1 1 对象与类对象与类对象与类对象与类(Object&Class)(Object&Class)对象是由数据(数据成员、成员变量、实例变量、对象是由数据(数据成员、成员变量、实例变量、对象是由数据(数据成员、成员变量、实
19、例变量、对象是由数据(数据成员、成员变量、实例变量、对象的局部变量)及其操作(操作、方法,成员对象的局部变量)及其操作(操作、方法,成员对象的局部变量)及其操作(操作、方法,成员对象的局部变量)及其操作(操作、方法,成员函数、消息处理过程)所构成的封装体。函数、消息处理过程)所构成的封装体。函数、消息处理过程)所构成的封装体。函数、消息处理过程)所构成的封装体。类是对象特性的描述,一个类刻画了一组具有相类是对象特性的描述,一个类刻画了一组具有相类是对象特性的描述,一个类刻画了一组具有相类是对象特性的描述,一个类刻画了一组具有相同特性的对象,是创建对象的模板。对象是类的同特性的对象,是创建对象的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 语言 面向 对象 特性
限制150内