欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    Java语言中面向对象特性.ppt

    • 资源ID:70796551       资源大小:212.99KB        全文页数:41页
    • 资源格式: PPT        下载积分:11.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要11.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Java语言中面向对象特性.ppt

    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 nvoid 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 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: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(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 nst.bufferst.top=12;/errorn n3)3)两种方案的简单比较两种方案的简单比较两种方案的简单比较两种方案的简单比较n n方案方案方案方案1)1)中对栈的操作可以通过提供的函数来实现,中对栈的操作可以通过提供的函数来实现,中对栈的操作可以通过提供的函数来实现,中对栈的操作可以通过提供的函数来实现,也可以直接在栈的数据表示上直接进行;方案也可以直接在栈的数据表示上直接进行;方案也可以直接在栈的数据表示上直接进行;方案也可以直接在栈的数据表示上直接进行;方案2)2)中只能通过提供的函数来操作栈。中只能通过提供的函数来操作栈。中只能通过提供的函数来操作栈。中只能通过提供的函数来操作栈。n n直接操作数据的弊病在于:直接操作数据的弊病在于:直接操作数据的弊病在于:直接操作数据的弊病在于:n n不安全,易产生错误,并且定位错误较为困难。不安全,易产生错误,并且定位错误较为困难。不安全,易产生错误,并且定位错误较为困难。不安全,易产生错误,并且定位错误较为困难。n n一旦数据表示发生变化,将影响所有的操作。一旦数据表示发生变化,将影响所有的操作。一旦数据表示发生变化,将影响所有的操作。一旦数据表示发生变化,将影响所有的操作。n n方案方案方案方案1)1)需要显式地对栈进行初始化,方案需要显式地对栈进行初始化,方案需要显式地对栈进行初始化,方案需要显式地对栈进行初始化,方案2)2)则否。则否。则否。则否。n n2 定义定义n n面向对象程序设计是把程序构造成由若面向对象程序设计是把程序构造成由若干对象组成,每个对象由一些数据和对这干对象组成,每个对象由一些数据和对这些数据所实施的操作构成;对数据的操作些数据所实施的操作构成;对数据的操作是通过向包含数据的对象发送消息来实现是通过向包含数据的对象发送消息来实现(调用对象的操作调用对象的操作);对象的特性;对象的特性(数据与操数据与操作作)由由(对象对象)类来描述,一个类的特性可以类来描述,一个类的特性可以从其它的类继承。从其它的类继承。n n n n上述的定义包含了下面的基本概念:上述的定义包含了下面的基本概念:n n对象:对象式计算的基本单位,由:接口,数对象:对象式计算的基本单位,由:接口,数对象:对象式计算的基本单位,由:接口,数对象:对象式计算的基本单位,由:接口,数据,操作构成。据,操作构成。据,操作构成。据,操作构成。n n通信:引起对象式计算的唯一方式。通信:引起对象式计算的唯一方式。通信:引起对象式计算的唯一方式。通信:引起对象式计算的唯一方式。n n类:对象特性的描述。类:对象特性的描述。类:对象特性的描述。类:对象特性的描述。n n继承:复用机制。继承:复用机制。继承:复用机制。继承:复用机制。为什么要为什么要oop?n n一个好的软件开发方法或技术的评价标准:一个好的软件开发方法或技术的评价标准:开发效率和软件质量保证。开发效率和软件质量保证。n n开发效率指方法使用的难易程度和方法缩开发效率指方法使用的难易程度和方法缩短开发周期的程度等。短开发周期的程度等。n n软件质量包括:外部质量和内部质量。软件质量包括:外部质量和内部质量。n n外部质量:软件中与用户有关的质量因素,这外部质量:软件中与用户有关的质量因素,这外部质量:软件中与用户有关的质量因素,这外部质量:软件中与用户有关的质量因素,这里的用户包括最终用户和二次开发用户。包括:里的用户包括最终用户和二次开发用户。包括:里的用户包括最终用户和二次开发用户。包括:里的用户包括最终用户和二次开发用户。包括:正确性正确性正确性正确性(Correctness)(Correctness)、效率、效率、效率、效率(Efficiency)(Efficiency)、健壮、健壮、健壮、健壮性或鲁棒性性或鲁棒性性或鲁棒性性或鲁棒性(Robustness)(Robustness)、可靠性、可靠性、可靠性、可靠性(Reliability)(Reliability)、可用性可用性可用性可用性(Usability)(Usability)和可复用性和可复用性和可复用性和可复用性(Reusability)(Reusability)等方等方等方等方面。面。面。面。n n内部质量:软件中与软件开发人员有关的质量内部质量:软件中与软件开发人员有关的质量内部质量:软件中与软件开发人员有关的质量内部质量:软件中与软件开发人员有关的质量因素。包括:可读性因素。包括:可读性因素。包括:可读性因素。包括:可读性(Readability)(Readability)和可维护性和可维护性和可维护性和可维护性(maintainability)(maintainability)等。等。等。等。n n外部质量靠内部质量来保证。外部质量靠内部质量来保证。外部质量靠内部质量来保证。外部质量靠内部质量来保证。n n下面就能够保证软件质量的几个程序设计下面就能够保证软件质量的几个程序设计机制来说明面向对象程序设计的优势:机制来说明面向对象程序设计的优势:n n1 抽象抽象(Abstraction)处理大而复杂问题的重要手段是抽象:强调处理大而复杂问题的重要手段是抽象:强调事物本质的东西。对程序抽象而言,一个事物本质的东西。对程序抽象而言,一个语言结构的抽象强调的是该结构外部可观语言结构的抽象强调的是该结构外部可观察到的行为,与该结构的内部实现无关。察到的行为,与该结构的内部实现无关。n n过程抽象过程抽象(Procedural Abstraction)结构化程序设计是其典型代表。结构化程序设计是其典型代表。结构化程序设计是其典型代表。结构化程序设计是其典型代表。把子程序的接口和实现分开,使用者只需要知道子程序把子程序的接口和实现分开,使用者只需要知道子程序把子程序的接口和实现分开,使用者只需要知道子程序把子程序的接口和实现分开,使用者只需要知道子程序 的接口的接口的接口的接口(功能和参数功能和参数功能和参数功能和参数)而不需要关心其内部实现,适合于而不需要关心其内部实现,适合于而不需要关心其内部实现,适合于而不需要关心其内部实现,适合于 基于功能分解的逐步精化基于功能分解的逐步精化基于功能分解的逐步精化基于功能分解的逐步精化(Step-wise)(Step-wise)程序设计程序设计程序设计程序设计。过程抽象的不足之处在于:过程抽象的不足之处在于:过程抽象的不足之处在于:过程抽象的不足之处在于:pp数据与操作的描述分离。数据与操作的描述分离。数据与操作的描述分离。数据与操作的描述分离。pp数据缺乏保护。数据缺乏保护。数据缺乏保护。数据缺乏保护。pp不能适应需求的改变。不能适应需求的改变。不能适应需求的改变。不能适应需求的改变。n n数据抽象数据抽象(Data Abstraction)以数据为中心,把数据及其操作作为一个整体以数据为中心,把数据及其操作作为一个整体以数据为中心,把数据及其操作作为一个整体以数据为中心,把数据及其操作作为一个整体(对象)来进行描述,对数据的操作由包含数据(对象)来进行描述,对数据的操作由包含数据(对象)来进行描述,对数据的操作由包含数据(对象)来进行描述,对数据的操作由包含数据的对象来提供。的对象来提供。的对象来提供。的对象来提供。面向对象程序设计强调的是数据抽象,一方面向对象程序设计强调的是数据抽象,一方面加强了数据保护,另一方面实现了对现面加强了数据保护,另一方面实现了对现实世界活动的直接模拟,能较好地适应需实世界活动的直接模拟,能较好地适应需求的变化。不足之处在于:对系统的整体求的变化。不足之处在于:对系统的整体功能缺乏清楚的描述。功能缺乏清楚的描述。n n 2 封装封装(Encapsulation)把一个语言结构的具体实现细节作为一个黑匣子把一个语言结构的具体实现细节作为一个黑匣子把一个语言结构的具体实现细节作为一个黑匣子把一个语言结构的具体实现细节作为一个黑匣子对该结构的使用者隐藏起来的一种机制,从而符对该结构的使用者隐藏起来的一种机制,从而符对该结构的使用者隐藏起来的一种机制,从而符对该结构的使用者隐藏起来的一种机制,从而符合信息隐藏合信息隐藏合信息隐藏合信息隐藏(Information Hiding)(Information Hiding)原则原则原则原则。封装考虑的是内部实现,抽象考虑的是外部行为。封装考虑的是内部实现,抽象考虑的是外部行为。封装考虑的是内部实现,抽象考虑的是外部行为。封装考虑的是内部实现,抽象考虑的是外部行为。n n过程封装过程封装过程封装过程封装n n实现了操作的封装,而数据是公开的。实现了操作的封装,而数据是公开的。实现了操作的封装,而数据是公开的。实现了操作的封装,而数据是公开的。n n 数据封装数据封装数据封装数据封装n n实现了数据及其操作的封装。实现了数据及其操作的封装。实现了数据及其操作的封装。实现了数据及其操作的封装。n n面向对象程序设计强调的是数据封装面向对象程序设计强调的是数据封装面向对象程序设计强调的是数据封装面向对象程序设计强调的是数据封装。面向对象的基本概念面向对象的基本概念n n1 1 对象与类对象与类对象与类对象与类(Object&Class)(Object&Class)对象是由数据(数据成员、成员变量、实例变量、对象是由数据(数据成员、成员变量、实例变量、对象是由数据(数据成员、成员变量、实例变量、对象是由数据(数据成员、成员变量、实例变量、对象的局部变量)及其操作(操作、方法,成员对象的局部变量)及其操作(操作、方法,成员对象的局部变量)及其操作(操作、方法,成员对象的局部变量)及其操作(操作、方法,成员函数、消息处理过程)所构成的封装体。函数、消息处理过程)所构成的封装体。函数、消息处理过程)所构成的封装体。函数、消息处理过程)所构成的封装体。类是对象特性的描述,一个类刻画了一组具有相类是对象特性的描述,一个类刻画了一组具有相类是对象特性的描述,一个类刻画了一组具有相类是对象特性的描述,一个类刻画了一组具有相同特性的对象,是创建对象的模板。对象是类的同特性的对象,是创建对象的模板。对象是类的同特性的对象,是创建对象的模板。对象是类的同特性的对象,是创建对象的模板。对象是类的实例。实例。实例。实例。对象属于值的范畴,而类属于类型的范畴。对象属于值的范畴,而类属于类型的范畴。对象属于值的范畴,而类属于类型的范畴。对象属于值的范畴,而类属于类型的范畴。对象与类实现数据抽象、封装、模块对象与类实现数据抽象、封装、模块对象与类实现数据抽象、封装、模块对象与类实现数据抽象、封装、模块n n2 2 继承继承继承继承(Inheritance)(Inheritance)与聚集(与聚集(与聚集(与聚集(AggregationAggregation)继承和聚集是实现软件复用的重要设施。继承和聚集是实现软件复用的重要设施。继承和聚集是实现软件复用的重要设施。继承和聚集是实现软件复用的重要设施。在继承机制中,类分为父类(基类)与子类(派在继承机制中,类分为父类(基类)与子类(派在继承机制中,类分为父类(基类)与子类(派在继承机制中,类分为父类(基类)与子类(派生类,衍类),子类除了包含父类的属性以外,生类,衍类),子类除了包含父类的属性以外,生类,衍类),子类除了包含父类的属性以外,生类,衍类),子类除了包含父类的属性以外,也可以定义新的属性,或重新定义父类的属性。也可以定义新的属性,或重新定义父类的属性。也可以定义新的属性,或重新定义父类的属性。也可以定义新的属性,或重新定义父类的属性。可以是单继承(一个类最多有一个直接父类)与可以是单继承(一个类最多有一个直接父类)与可以是单继承(一个类最多有一个直接父类)与可以是单继承(一个类最多有一个直接父类)与多继承(一个类可以有多个直接父类)。多继承(一个类可以有多个直接父类)。多继承(一个类可以有多个直接父类)。多继承(一个类可以有多个直接父类)。在聚集机制中,一个类的数据成员的类型可以是在聚集机制中,一个类的数据成员的类型可以是在聚集机制中,一个类的数据成员的类型可以是在聚集机制中,一个类的数据成员的类型可以是另一个类。另一个类。另一个类。另一个类。n n3 3 多态多态多态多态(Polymorphism)(Polymorphism)一般含义是,某一论域中的一个元素可以有多种一般含义是,某一论域中的一个元素可以有多种一般含义是,某一论域中的一个元素可以有多种一般含义是,某一论域中的一个元素可以有多种解释。解释。解释。解释。具体到程序语言,则有以下两个含义:具体到程序语言,则有以下两个含义:具体到程序语言,则有以下两个含义:具体到程序语言,则有以下两个含义:l l相同的语言结构可以代表不同类型的实体;相同的语言结构可以代表不同类型的实体;相同的语言结构可以代表不同类型的实体;相同的语言结构可以代表不同类型的实体;一名多用或重载(一名多用或重载(一名多用或重载(一名多用或重载(OverloadingOverloading),如:操作符),如:操作符),如:操作符),如:操作符重载与函数重载。重载与函数重载。重载与函数重载。重载与函数重载。l l相同的语言结构可以对不同类型的实体进行操相同的语言结构可以对不同类型的实体进行操相同的语言结构可以对不同类型的实体进行操相同的语言结构可以对不同类型的实体进行操作。作。作。作。类属(类属(类属(类属(GenericityGenericity),如:类属函数与类属类。),如:类属函数与类属类。),如:类属函数与类属类。),如:类属函数与类属类。多态的作用是提高程序的易扩充性、实现高多态的作用是提高程序的易扩充性、实现高层软件的复用。层软件的复用。良好的OOP风格n n程序设计风范(程序设计风范(程序设计风范(程序设计风范(Programming paradigmProgramming paradigm)和程序)和程序)和程序)和程序设计风格(设计风格(设计风格(设计风格(Programming StyleProgramming Style)。)。)。)。n n程序设计风范涉及程序设计方法,如:过程式程程序设计风范涉及程序设计方法,如:过程式程程序设计风范涉及程序设计方法,如:过程式程程序设计风范涉及程序设计方法,如:过程式程序设计、对象式程序设计、函数式程序设计以及序设计、对象式程序设计、函数式程序设计以及序设计、对象式程序设计、函数式程序设计以及序设计、对象式程序设计、函数式程序设计以及逻辑式程序设计等。逻辑式程序设计等。逻辑式程序设计等。逻辑式程序设计等。n n程序设计风格通常指对程序进行静态分析所能确程序设计风格通常指对程序进行静态分析所能确程序设计风格通常指对程序进行静态分析所能确程序设计风格通常指对程序进行静态分析所能确认的特性。认的特性。认的特性。认的特性。n n结构化程序设计(结构化程序设计(结构化程序设计(结构化程序设计(SPSP)可以看作是一种良好的过)可以看作是一种良好的过)可以看作是一种良好的过)可以看作是一种良好的过程式程序设计风格。程式程序设计风格。程式程序设计风格。程式程序设计风格。“按照一组能够提高程序易按照一组能够提高程序易按照一组能够提高程序易按照一组能够提高程序易读性与易维护性的规则进行程序设计的方法读性与易维护性的规则进行程序设计的方法读性与易维护性的规则进行程序设计的方法读性与易维护性的规则进行程序设计的方法”()()()()。它不仅要求所编出的程序结构良好,而且还要。它不仅要求所编出的程序结构良好,而且还要。它不仅要求所编出的程序结构良好,而且还要。它不仅要求所编出的程序结构良好,而且还要求程序设计过程也是结构良好的。这里,求程序设计过程也是结构良好的。这里,求程序设计过程也是结构良好的。这里,求程序设计过程也是结构良好的。这里,“结构结构结构结构良好良好良好良好”是指:是指:是指:是指:n n具有单入口、单出口的性质。具有单入口、单出口的性质。具有单入口、单出口的性质。具有单入口、单出口的性质。n n不包含不会停止执行的语句。不包含不会停止执行的语句。不包含不会停止执行的语句。不包含不会停止执行的语句。n n没有无用语句。没有无用语句。没有无用语句。没有无用语句。n n把结构化程序生动地比喻为把结构化程序生动地比喻为把结构化程序生动地比喻为把结构化程序生动地比喻为“项链上的一串珍珠项链上的一串珍珠项链上的一串珍珠项链上的一串珍珠”。n n良好的对象式程序设计风格是什么呢?良好的对象式程序设计风格是什么呢?封装和继承是面向对象的两个主要特性,它们在封装和继承是面向对象的两个主要特性,它们在封装和继承是面向对象的两个主要特性,它们在封装和继承是面向对象的两个主要特性,它们在两个层次上(实例和类)强调了模块的可复用性两个层次上(实例和类)强调了模块的可复用性两个层次上(实例和类)强调了模块的可复用性两个层次上(实例和类)强调了模块的可复用性和可维护性,而模块的可复用性和可维护性的关和可维护性,而模块的可复用性和可维护性的关和可维护性,而模块的可复用性和可维护性的关和可维护性,而模块的可复用性和可维护性的关键在于降低模块之间的耦合度。良好的键在于降低模块之间的耦合度。良好的键在于降低模块之间的耦合度。良好的键在于降低模块之间的耦合度。良好的OOPOOP风格风格风格风格的目标是降低模块间的耦合度、增强模块的可复的目标是降低模块间的耦合度、增强模块的可复的目标是降低模块间的耦合度、增强模块的可复的目标是降低模块间的耦合度、增强模块的可复用性用性用性用性。Demeter法则法则 在在在在OOPOOP中中中中,模模模模块块块块间间间间的的的的耦耦耦耦合合合合反反反反映映映映在在在在对对对对象象象象类类类类之之之之间间间间方方方方法法法法的的的的相相相相互互互互调调调调用用用用上上上上,要要要要降降降降低低低低模模模模块块块块间间间间的的的的耦耦耦耦合合合合度度度度,应应应应该该该该对对对对方方方方法法法法中中中中能能能能访访访访问问问问的的的的对对对对象象象象或或或或对对对对象象象象类类类类的的的的集集集集合合合合作作作作一一一一定定定定的的的的限限限限制制制制,并并并并尽尽尽尽量量量量使使使使该该该该集集集集合合合合为为为为最最最最小小小小,从从从从而而而而降降降降低低低低方方方方法法法法对对对对环环环环境境境境的的的的依依依依赖赖赖赖性性性性,这这这这个个个个要求称为要求称为要求称为要求称为DemeterDemeter法则。法则。法则。法则。DemeterDemeter法法法法则则则则的的的的基基基基本本本本思思思思想想想想是是是是:一一一一个个个个类类类类的的的的方方方方法法法法除除除除了了了了能能能能访访访访问问问问自自自自身身身身类类类类结结结结构构构构的的的的直直直直接接接接子子子子结结结结构构构构(表表表表层层层层子子子子结结结结构构构构)外外外外,不不不不能能能能以以以以任任任任何何何何方方方方式式式式依依依依赖赖赖赖于于于于任任任任何何何何其其其其它它它它类类类类的的的的结结结结构构构构;并并并并且且且且每每每每个个个个方方方方法法法法只只只只应应应应对对对对某某某某个个个个有有有有限限限限类类类类集合中的相应对象发送消息。集合中的相应对象发送消息。集合中的相应对象发送消息。集合中的相应对象发送消息。“纯粹纯粹”的面向对象程序设计方法的面向对象程序设计方法是什么样的是什么样的?n n(1)(1)所有东西都是对象。可将对象想象成一种新所有东西都是对象。可将对象想象成一种新型变量;它保存着数据,但可要求它对自身进行型变量;它保存着数据,但可要求它对自身进行操作。理论上讲,可从要解决的问题身上提出所操作。理论上讲,可从要解决的问题身上提出所有概念性的组件,然后在程序中将其表达为一个有概念性的组件,然后在程序中将其表达为一个对象。对象。(2)(2)程序是一大堆对象的组合;通过消息传递,程序是一大堆对象的组合;通过消息传递,各对象知道自己该做些什么。为了向对象发出请各对象知道自己该做些什么。为了向对象发出请求,需向那个对象求,需向那个对象“发送一条消息发送一条消息”。更具体地。更具体地讲,可将消息想象为一个调用请求,它调用的是讲,可将消息想象为一个调用请求,它调用的是从属于目标对象的一个子例程或函数。从属于目标对象的一个子例程或函数。n n3)每个对象都有自己的存储空间,可容纳其他对象。或者说,通过封装现有对象,可制作出新型对象。所以,尽管对象的概念非常简单,但在程序中却可达到任意高的复杂程度。(4)每个对象都有一种类型。根据语法,每个对象都是某个“类”的一个“实例”。其中,“类”(Class)是“类型”(Type)的同义词。一个类最重要的特征就是“能将什么消息发给它?”。n n(5)同一类所有对象都能接收相同的消息。这实际是别有含义的一种说法,大家不久便能理解。由于类型为“圆”(Circle)的一个对象也属于类型为“形状”(Shape)的一个对象,所以一个圆完全能接收形状消息。这意味着可让程序代码统一指挥“形状”,令其自动控制所有符合“形状”描述的对象,其中自然包括“圆”。这一特性称为对象的“可替换性”,是OOP最重要的概念之一。尽管以尽管以C+为基础,但为基础,但Java是一种更是一种更纯粹的面向对象程序设计语言纯粹的面向对象程序设计语言 n n为什么一切皆对象?为什么一切皆对象?n n无论无论C+C+还是还是JavaJava都属于杂合语言。但在都属于杂合语言。但在JavaJava中,中,设计者觉得这种杂合并不象在设计者觉得这种杂合并不象在C+C+里那么重要。里那么重要。杂合语言允许采用多种编程风格;之所以说杂合语言允许采用多种编程风格;之所以说C+C+是一种杂合语言,是因为它支持与是一种杂合语言,是因为它支持与C C语言的向后兼语言的向后兼容能力。由于容能力。由于C+C+是是C C的一个超集,所以包含的许的一个超集,所以包含的许多特性都是后者不具备的,这些特性使多特性都是后者不具备的,这些特性使C+C+在某在某些地方显得过于复杂。些地方显得过于复杂。n nJava语言首先便假定了我们只希望进行面向对象的程序设计。也就是说,正式用它设计之前,必须先将自己的思想转入一个面向对象的世界(除非早已习惯了这个世界的思维方式)。只有做好这个准备工作,与其他OOP语言相比,才能体会到Java的易学易用。在本章,我们将探讨Java程序的基本组件,并体会为什么说Java乃至Java程序内的一切都是对象。n n1.1.用句柄操纵对象用句柄操纵对象用遥控板(句柄)操纵电视机(对象)。只要握用遥控板(句柄)操纵电视机(对象)。只要握住这个遥控板,就相当于掌握了与电视机连接的住这个遥控板,就相当于掌握了与电视机连接的通道。但一旦需要通道。但一旦需要“换频道换频道”或者或者“关小声音关小声音”,我们实际操纵的是遥控板(句柄),再由遥控,我们实际操纵的是遥控板(句柄),再由遥控板自己操纵电视机(对象)。如果要在房间里四板自己操纵电视机(对象)。如果要在房间里四处走走,并想保持对电视机的控制,那么手上拿处走走,并想保持对电视机的控制,那么手上拿着的是遥控板,而非电视机。着的是遥控板,而非电视机。此外,即使没有电视机,遥控板亦可独立存在。此外,即使没有电视机,遥控板亦可独立存在。也就是说,只是由于拥有一个句柄,并不表示必也就是说,只是由于拥有一个句柄,并不表示必须有一个对象同它连接。须有一个对象同它连接。n n 所有对象都必须创建 n n绝对不要清除对象n n构建我们的一个java程序n n/Property.java import java.util.*;public class Property public static void main(String args)System.out.println(new Date();Properties p=System.getProperties();p.list(System.out);System.out.println(-Memory Usage:);Runtime rt=Runtime.getRuntime();System.out.println(Total Memory=+rt.totalMemory()+Free Memory=+rt.freeMemory();The end!Thanks!

    注意事项

    本文(Java语言中面向对象特性.ppt)为本站会员(wuy****n92)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开