网站大量收购闲置独家精品文档,联系QQ:2885784924

Java程序设计与应用开发课件作者孙燮华第4章节Java面向对象特性.pptVIP

Java程序设计与应用开发课件作者孙燮华第4章节Java面向对象特性.ppt

  1. 1、本文档共17页,可阅读全部内容。
  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文档。上传文档
查看更多
4.2.1 类的定义 Java中的类由两部分组成,它们是成员变量和成员方法。 定义类,又称为声明类。在Java中类定义的一般格式如下 4.2.2对象的创建、初始化和使用 1. 对象的定义 2. 对象的初始化   上面定义对象和实例化对象的两个语句,还可用下面的一句来完成: 3. 对象的使用     4.2.3 构造方法 1.构造方法的作用与定义 构造方法(constructor)是特殊的成员方法,有着特殊的功能。它的名字与类名完全相同,没有返回值。在创建对象实例时由new运算符自动调用。同时为了方便地创建实例,一个类可以有多个具有不同参数列表的构造方法,即构造方法可以重载。 2.默认的构造方法 每个类都至少有一个构造方法。如果程序员没有为类定义构造方法,系统会自动为该类生成一个默认的构造方法。默认构造方法的参数列表及方法体均为空。 3.拷贝构造方法 另外,还有一个简单的构造方法,它的参数只是一个指向该构造方法所属类的对象的引用。这种形式的构造方法通常用于复制一个已经存在的对象,因此称这种构造方法为拷贝构造方法。 4.2.4 成员变量和成员方法 1. 定义成员变量 2. 定义成员方法 4.2.5 成员方法的递归 递归算法(recursion),有时也称为递归方法是指一个方法直接或间接地调用自己的算法。递归方法会重复调用自身方法,但一次一次地将问题简单化,直到最简单并已存在解答时为止。递归类型有二种。其一是方法调用其自身,就是直接递归,其二是一个方法依次调用另一个方法,被称为间接递归。下面,以递归方法解Hanoi塔问题为例来说明递归方法的应用。 4.2.6方法的重载 1. 成员方法重载    下面以一个输出文本表示的简单方法为例来说明方法的重载。该方法名为println ()。要重载方法名,可以如下声明: 4.3类的继承和多态   在面向对象技术中,继承是类的最为显著的特征之一。当一个类自动拥有另一个类的全部属性时,就称这两个类之间具有继承关系。称被继承的类为父类(或超类),继承了父类的类为子类。继承,有时也称为派生,是一种由已有的类创建新类的机制。子类不仅可以从父类中继承父类的域和方法,而且可以对这些域和方法重新定义和扩充新的内容。 4.3.1 继承的概念 一个父类可以同时拥有多个子类,这时该父类实际上是所有子类的公共域和方法的集合,而每个子类则是对公共域和方法在功能、内涵方面的扩展和延伸。 总之,父类与子类的关系具有   ◆ 共享性 子类可以共享父类的公共域和方法。   ◆ 差异性 子类和父类之间一定存在某些差异性,否则就是同一个类。   ◆ 层次性 由于Java规定单重继承性,这使得每个类都处于继承关系的某一个层次。 下图4-4以电话类为例,给出了电话类及其子类之间继承关系的层次结构。 4.3.2 继承的实现 在Java中,继承是通过关键字extends来实现的。其一般格式如下: 4.3.3单重继承   如果一个类有父类,则其父类只能有一个。Java只允许子类从一个类即其父类中继承。称这种继承为单重继承。Java规定单重继承的限制,是因为它要让代码的可靠性更高。另一方面,为了保留“多重继承”的功能,Java提出了接口的概念。   虽然一个子类可以从父类继承所有的方法和成员变量,但它不能继承构造方法。有两种方法可让一个类得到构造方法。一种方法是自己编写一个构造方法,另一种方法是,因为用户没有编写构造方法,所以系统为类提供唯一一个默认的构造方法。 4.3.4多态性   多态(Polymorphism)是指类中同名的不同方法共存的情况。这些方法具有相同的名称是因为它们的最终功能和目的是相同的,只是由于完成同一功能的方法时遇到不同情况需要定义包含不同内容的方法。多态是面向对象程序设计中的一个特性,其目的是提高程序的抽象度、封闭性和简洁性。 Java提供两种多态机制:重载和覆盖。我们已经在4.2.6节学习了方法的重载(overloading)。本节,我们要学习另一种多态机制,即方法和域的覆盖(overriding)。 4.3.5 方法和域的覆盖 由于面向对象系统中的继承,子类可以继承父类中的方法。但是,子类的某些特征可能与从父类继承而来的特征有所不同。为了体现子类的这种个性,Java允许子类对父类的同名方法重新进行定义,即子类可以定义与父类方法同名但其内容不同的方法。这种多态就称为覆盖(overriding), 或称为重写, 还有称为隐藏。由于覆盖的同名方法同时存在于子类和父类之中,所以在方法引用时需要指明引用的是父类的方法还是子类的方法。值得注意的是,在覆盖的同名方法中

文档评论(0)

带头大哥 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档