高级Java编程技术 第三讲 面向对象的核心特性 .ppt

高级Java编程技术 第三讲 面向对象的核心特性 .ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面向对象的核心特性 面向对象思想 抽象   所有的程序设计语言都实现了某种程度上的抽象. 抽象是把问题领域的问题变成计算机解决领域内的解决方法. 用计算机的思想来解释问题. 面向对象方法是提供了手段来直接描述问题领域内的成分。 我们将问题领域内的成分在解决领域内表现为对象。 当你阅读OOP的程序时,你即是在阅读相应问题的描述。 OOP允许你以问题本身的术语来描述问题,而不是解决领域的术语。 面向对象程序设计 面向对象的程序设计(object_oriented programming): 面向对象方法的基本工作是划分和定义对象。 对对象的判断和划分与实际问题的领域有关。 Alan Kay的OOP五大原则 (1) 所有东西都是对象。 (2) 程序是一大堆对象的组合;通过消息传递,各对象知道自己该做些什么。 (3) 每个对象都有自己的存储空间,可容纳其他对象。 (4) 每个对象都有一种类型。 (5) 同一类所有对象都能接收相同的消息。 封装(访问控制 ):隐藏的实现 不妨把程序设计过程分成class creators 和client programmers两个部门. class creators的目的就是制造类,只把必须的部分向client programmer公开,而把其他部分隐藏起来。 有两个理由要控制类中成员的存取权限. 不让client programmer随心所欲地直接使用应该隐藏的部分来改变对象的行为 让class creator能随心所欲地改变隐藏的部分,只要这种改变不会影响公开的部分 继承:重用实现 最简单的重用一个类的方法是直接使用这个类的一个对象来构筑新的对象或程序 组织composition:用现有对象构筑一个新的对象 在一个对象内部的对象通常是私有的 继承: 重用接口 使用继承时,相当于创建了一个新类。这个新类不仅包含现有类型的所有成员,但更重要的是,它复制了基础类的接口。 可以向基础类的对象发送的所有消息可以同样地发给衍生类的对象: 即新的衍生类具有与基础类相同的类型 衍生类与基础类有两种关系: 尽管具有相同的接口,但是通常具有不同的行为 -- IS-A 或者在基础类的界面的基础上增加新的接口(extend) -- IS-LIKE-A 多态性 对于右边这个类族关系,我们要进行的一项重要工作是将衍生类的对象当作基础类的对象对待。它意味着我们只须编写单一的代码,令其忽略类型的特定细节,只与基础类的对象打交道。 多态性(续) Upcasting -- 把衍生类的对象当作其基础类的对象对待 void doStuff(Shape s) { s.erase(); // ... s.draw();} Circle c = new Circle(); Triangle t = new Triangle(); Line l = new Line(); doStuff(c); doStuff(t); doStuff(l); 你是一种Shape,我知道你能将自己删掉,即erase();请自己采取那个行动,并自己去控制所有的细节吧。 多态性(续) 动态绑定 为Cirle调用draw()时执行的代码与为一个Square或Line调用draw()时执行的代码是不同的。但在将draw()消息发给一个不知道确切类型的Shape对象时,根据Shape引用当时连接的实际类型,会采取相应的正确的操作。 多态性:将一条消息发给对象时,如果不知道对方的具体类型是什么,但采取的行动同样是正确的。 在Java中,所有的函数调用都是动态绑定的。 类(Class) 类是具有共同属性和行为的对象的抽象。 类可以定义为数据和方法的集合。 类也称为模板,因为它们提供了对象的基本框架。 对象 类的实例:每个实例有自己的存储空间(数据类型和变量的关系) 动态性,每个对象有自己的生存周期,会经历创建、运行到消亡的变化过程 类和对象的关系 类的封装性、继承性和多态性 封装性 为类中的成员变量和成员方法提供多级访问权限 继承性 从已存在的类创建新类,使得新类自动拥有被继承类的全部成员 多态性 提供类中方法执行的多样性,重载(overload)和覆盖(overwrite) 类的定义 声明类 类声明 { 成员变量的声明; 成员方法的声明及实现; } 类声明的格式 [修饰符] class 类泛型 [extends 父类] [implements 接口列表] public class Date1 //类声明 { int year, month, day; //声明成员变量 } 类的定义(续) 声明成员变量 成员变量声明语法 [修饰符] [static][fi

文档评论(0)

prtscr + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档