需求分析与系统设计课件2类层次.pptVIP

  1. 1、本文档共79页,可阅读全部内容。
  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文档。上传文档
查看更多
封面 第2章 类层次 章引言 2.1子类型 2.1.1里氏替换原则 聪明的狗仍然是一条狗 1.里氏替换原则(Liskov Substitution Principle、LSP) 子类型是一个父类型 子类型(必须)能够替代其父类型 2.子类的定义和语法 3.子类(subclass)与子类型(subtype)的区别 2.1.2啊,我看到了多态 多态 1.多态变量和向上造型 2.呈现多态的条件 2.1.3改写(overriding) 2.如何改写方法 3. @Override 2.1.4 访问修饰符与继承 2.子类继承了什么 3.继承的分类 (1)特化(specialization)继承 (2)扩展(extension)继承 (3)协议(Specification、规范)继承 (4)多重继承(multiple inheritance ) 3.继承的优缺点 继承的优缺点 必须强调 2.1.5 final方法和final类 1. final方法 2. final类 2.2数据类型 2.2.1类型系统* 基本目的 1.变量与类型的绑定 静态类型语言(static typed languages) 2.类型检查(type checking) 2.2.2 Java数据类型 值+操作 2.Java的数据类型综述 3.文字、值和Java语言结构 4.100%面向对象? 2.2.3变量的声明模型 1.变量的含义 2.变量的绑定 3.变量的作用域(scope) 域、形参、局部变量和异常处理参数 变量与它的值绑定 4.可见性与变量隐藏 变量隐藏有几条规则 5.生命期(lifetime) 基本类型变量和引用变量在哪里分配空间? 2.2.4类型转换 2.3构造器 2.3.1重载 1.如何重载两个方法或构造器 3.重载方法匹配算法 2.3.2方法同名问题 3. overriding与overloading 2.3.3无参数构造器和初始化块 - 初始化块(initialization block) 2.3.4创建对象 观察程序的运行步骤 2. 构造器中调用方法的问题 2.3.5 super与this 2.super与this两个实例变量 2.3.6 构造器不是方法 2.4引用 2.4.1引用的涵义 1. 引用指向对象 2. 引用是new表达式的值 3. 引用的“大概模样” 2.4.2引用变量、引用和对象 2. 避免啰嗦 2.4.3 final变量和不变类 不变类 不变类 条件 静态初始化块在类载入时被自动执行,而初始化块如同被放在类的每一个构造器的开头(super和this之后)那样被执行。 static void foo(){ x = new InitializationBlock() { {setI(5);setJ(50);}}; } 在new表达式后使用两重{}的代码,是初始化块。 Java中创建对象的基本方式是“new 构造器() ”表达式,new表达式的值是指向该对象的引用(reference)。 对象初始化三步曲: 默认初始化 赋值初始化 执行构造器(含初始化块)代码构成 package OO.init; public class Robot{ ? private int age = 10; //赋值初始化 //private int k = age; private int power = go(age); //方法调用 private int k = age; // 保留age在赋值初始化后的值 /*private*/ int go(int xxx){ return xxx * k;//注意声明k的位置: } public Robot(){ //1 age = 30; } } 构造器中应该避免调用可能被改写的方法,因为设计父类时很难预测其他程序员会怎样改写被调用的方法。 因此,构造器中调用的方法,应该设计成private、final或static方法;否则,必须在文档明确地加以说明。 1.super()与this() 2.super与this两个实例变量 系统按照固定的顺序自动调用构造器:从Object类开始,按继承树的顺序,直到new关键字所指定的类的构造器。 构造器重载,需要一种机制帮助JVM决定调用哪个重载的构造器,这就是this(参数)和super(参数)的作用所在。 定义一个类,编译器悄悄地给类体预备了两个实例变量,关键字super

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档