第5章 访(问控制、继承、多态1.pptVIP

  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文档。上传文档
查看更多
第5章 访问控制、多态、继承、包和接口 (一)访问控制——类的访问控制 同一个java程序文件中的所有类都在同一个包内 多个java文件若声明在同一个pakage下也属于同一个包 处于同一个包内的类是彼此可见的(即可以直接互相调用的),而不同包之间的类,一般是不可见的,只有声明为public的类才可以被访问和调用。 (一)类的访问控制 (二)成员的访问控制 问题: 某类对其它类整体是可见的 如某类默认的访问控制对同一包内的类 或public类被其它包内的类访问 该类所有数据成员和成员方法也都可见了么? ——还取决与该类的成员的修饰符 成员的最终访问控制=类的可见性 +成员的可见性 成员的访问控制 public 公有的 private 私有的 protected 保护的 (1)public 访问控制 只有public类的public数据成员/方法才是任何类都可以访问的 建议:若希望某个类作为公共工具供其它的类和程序使用,应把该类和类内的某个方法声明为public public 类+ public方法 package java.lang; public final class String { public String() { } public Stirng toUpperCase() {…} } (2)private访问控制 c5_3.java 用private修饰的数据成员不能被子类访问 (3)protected访问控制 (3)protected访问控制 主要用于继承,特别是允许其它的子类可以访问父类的时候 Protected可以被三种类引用: 该类自身——同private——类外对象不能 同一个包内的其它类 其它包内的该类的子类 protectd 例子 二 .方法的重载 问题的引出: 2个int的数相加 add(int,int) 2个double数相加 addDouble(double double) 3个int的数相加 add3(int, int,int) 能不能聪明些呢? 重载: 多个同名的方法,参数个数和类型不同 编译器根据方法调用时候实际参数的个数和类型,选择所对应的重载方法 重载例c5_5.java 三. 继承 继承: 同类事物具有共性?抽取其共性?一般类 每个事物又具有特殊性 ?特殊类 特点 B具有父类A除private外全部属性和方法, 又具有自己的属性和方法 优点 拿来主义,复用 特殊类中不用再重复定义一般类中已经定义好的东西 (二)继承的特征 继承关系是传递的 清晰地体现相关类之间的层次 提供了复用 Java不支持多继承,多继承是由接口实现的 单继承:只有一个父类 多继承:超过两个父类 extends表面继承关系 class A { } class B extends A { } 子类可以从父类那里继承所有非private的属性和方法 若一个类没有显式定义父类——缺省是系统object的子类 (1)成员的继承(子类继承父类、并可以访问非private数据、方法) c5_6.java 例:c5_8.java 子类可以继承父类的非私有成员方法 (2)成员的隐藏与覆盖 数据成员的隐藏(hidding) 子类的成员变量与父类的成员变量同名时,该父类的成员变量被隐藏 例 成员方法的覆盖(override) 子类覆盖父类方法时,应与父类 同方法名、同返回值类型、和同参 ——否则成了重载! 二者注意: 数据隐藏: 子类隐藏父类的同名数据成员,而其它父类同名的数据成员在子类对象中仍占有自己独立的内存空间 方法覆盖: 父类方法在子类对象中不复存在,其空间被子类覆盖方法所占用 a)数据成员的隐藏 b)成员方法的覆盖 (3)this 与super this:当前对象的引用 背景:成员方法的形参或局部变量与数据成员同名时 class Circle{ double r; public Circle(double r){ r= r; } } 建议:若一个类有多个构造方法,尽可能使用this(参数表)的方式来实现他们 class Circle { double r; public Circle(double r) { //类的构造方法 this.r=r; } public Circle(){ this(1.0); //用this调用同类其它的构造方法 } } 一般:无参或者参数少的构造方法可以调用参数多的构造方法——简化代码 Java要求:this(参数表)应该是构

文档评论(0)

gaga222 + 关注
文档贡献者

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

1亿VIP精品文档

相关文档