ch面向对象基础.pptVIP

  1. 1、本文档共47页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ch面向对象基础

第五章 面向对象基础 ︳Java程序设计 本章学习提示 本章我们主要学习面向对象编程的基本概念。 封装、继承、多态 访问控制符的使用 Static 和 final 的使用 目 录 OOP语言 面向对象程序设计(OOP Object-Orienten Programming) 是现今程序设计的主流和流行趋势。在面向对象的程序设计中,将所有事物都作为对象来处理. OOP的基本思想是把人们对现实世界的认识过程应用到程序设计中。现实世界的物体就是对象,它有两个基本特点一个是物体的内部构成,另一个是物体的行为. OOP与现实对象两个基本特点相对应的是数据和方法。 数据表示对象的构成,方法表示对象的行为. 类的概念 类是对象的“模板”,对象是类的实例. 类与对象之间的关系可以看成是抽象与具体的关系。 其中类是抽象的,对象是具体的 类描述了对象的属性和行为 对象是类的一个实例 在JAVA语言中,所有的东西都是对象,对象就如同是一种新型变量,通过赋值语句对该变量进行性初始化操作. 比如,当设计灯泡的时候要求每一个灯泡都必须具有型号这个属性,同时还要能够进行打开、关闭等操作 因此当把灯泡这些共同的属一生和行为集中起来的时候就抽象出一个灯泡类 每一个具有这些属性和行为的,具体的灯泡就是这个灯泡类的对象或者称为实例 面向对象的四大特性 抽象 (Abstraction) 封装 (Encapsulation) 继承 (Inheritance) 多态 (Polymorphism) 面向对象的基本特征 封装性: 基本思想: 把客观世界中联系紧密的元素及其相关操作组织在一起,使其相互作用隐藏、封装在内部,而对外部对象只提供单一的功能接口. 目的:将对象的使用者和设计者分开。 类比:汽车的左转、右转;被陶瓷封装的集成芯片 继承性 继承是OOP中一种由已有的类创建新类的机制。 一个父类(公共属性的集合)可以有多个子类(是父类的特殊化),一个子类只可以有一个父类 子类可以直接使用父类的方法,也可以根据需要修改父类中已经定义的方法(即不改变方法名,而修改方法的参数个数、参数类型)。 父类和子类可有同名的方法(多态性)。 多态性 定义:由于父类和子类可以有同名的方法,在运行时 JVM根据方法的参数个数和类型的不同来查找、决 定执行哪个版本的方法,称为多态性. 在程序执行时,JVM对对象某一方法的查找是从该对象类所在层次开始,沿类等级逐级向上进行,把第一个方法作为所要执行的方法。所以,子类的方法可以屏蔽父类的方法. 面向对象程序设计方法 面向对象程序设计方法是: 对象 = (算法 + 数据结构) 程序 = (对象 + 对象 + … ) 算法与数据结构是一个整体,算法离不开数据结构,算法只能适用于特定的数据结构。 面向对象中,算法与数据结构被捆绑成一个类 OOA - OOD - OOI 目 录 数据存在哪里 对程序运行时各部分是如何展开的一一特别是内存是 如何分配的,作一个直观的描述还是很有必要的. 数据可以存储在以下六个地方: 寄存器 栈 堆 静态存储 固定存储 非内存的存储 声明对象时的内存模型 内存模型 数据存在哪里 - 1 寄存器 这是反应最快的存储,因为它所处位置不同:处理器里. 由于寄存器的数最非常有限,是由编译器分配的. 非但不能直接控制寄存器,甚至连它存在的证据也找不到. 栈 位于常规内存区里,处理器可以通过栈指针(stack pointer)对它进行直接访问. 栈指针下移就创建新的存储空间,向上移就释放内存空间. 仅次于寄存器的最快、最有效率的分配内存的方法. 由于Java 编译器必须生成能控制栈指针移动的代码,所以程序编译的时候,那些将被存储在栈中的数据的大小和生命周期必须是已知的. 使程序的灵活性受到了限制,所以尽管Java把某些数据--特别是对象的引用reference存放在栈里,但对象本身并没有放在栈里. 数据存在哪里 - 2 堆 是 “多用途的内存池”(也在内存里面),所有Java对象保存在次 优点:分配空间的时候,编译器无需知道该分配多少空间,或者这些数据会在堆里呆多长时间.因此使用堆的空间会比较灵活. 只要想创建对象,用new就行了,程序执行的时候自会在堆里分配空间. 堆的缺点:当然得为这种灵活性付出代价,分配堆的存储空间要比分配栈的慢一些(假如能像C++那样在栈里创建对象). 静态存储 “静态”在这里的意思就是“在固定的位置”( 还是在RAM中)。 静态存储中的数据在整个程序的运行期间都能访问到。 可以用static关键词说明对象中的某个元索是静态的,但是Java对象本身是决不会放到静态存储中去的. 数据存在哪里 - 3 固定存储 常量值

文档评论(0)

sheppha + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5134022301000003

1亿VIP精品文档

相关文档