JAVA程序员9.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文档。上传文档
查看更多
JAVA程序员培训-9 讲师:朱晓 面向对象高级 本章目标 掌握类继承的定义及使用 掌握final关键字的使用 重点掌握抽象类与接口的实际应用 重点掌握对象的多态性 理解Object类 了解内部类和匿名内部类 掌握异常的捕获及处理 掌握包及访问控制权限的使用 Object类 Object类是所有java类的根类 如果类的声明中没有显式的定义extends继承某个类则默认继承Object类 例如: public class Employee 等同于 public class Employee extends Object 任何引用类型的实例都可以赋给Object类型的引用变量 Object obj = 任何引用类型的实例 toString方法 由Object类提供,在Object类中实现的功能是返回“完整类名@16进制哈希码” 在打印时如果传入的是引用类型,则默认调用此引用类型的toString()方法 在和字符串做加法运算时,也默认调用引用类型的toString()方法 可以覆盖toString()方法,将类中数据连接后返回给用户方便易懂的信息 equals方法的使用 equals方法 由根类Object提供,在Object中实现的功能和==相同 格式:obj1.equals(obj2)返回boolean类型值 有一些类已经覆盖了equals方法:String 、File 、Date,以及所有的包装类 可以在自定义类中覆盖equals方法,但同时也应该覆盖hashcode方法 覆盖equals方法举例 public class MyPoint { protected int x; protected int y; …… public boolean equals(Object obj){ if (obj == null) return false;//如果为空返回假 if (this == obj) return true;//如果是用一个实例返回真 if (!(obj instanceof MyPoint)) return false;//如果不是相同类型返回假 MyPoint other = (MyPoint) obj;//强制转换为当前类型 //进行自定义比较 if (this.x == other.x this.y == other.y){ return true; } return false; } 内部类 一个类声明定义在另一个类中就可以称为内部类 按照作用域可以分为 成员内部类 实例内部类 静态内部类 局部内部类 内部类和外部类名称不能重复,以下内部类的完整类名是A.B public class A{ //外部类 public class B{ //实例内部类 } } 实例内部类 定义在方法外部没有static修饰的内部类称为实例内部类 在外部类中可以直接创建内部类的对象 如果在其他类中创建内部类的对象,必须先创建外部类的对象实例,然后用外部类的实例去创建内部类的对象实例 内部类可以直接访问所有外部类的成员,外部类若想访问内部类的成员,必须建立内部类的对象实例,通过实例访问 在内部类中不能定义静态成员,只能定义实例成员 如果内部类中的成员或局部变量和外部类的成员同名 外部类名.this.成员名 表示外部类的成员 this.成员名 表示内部类的成员 实例内部类举例 class A { //外部类 int v1; int v2; void m1(){ B b = new B(); b.v1 = 100; } class B{ // 内部类 int v1; static int v2; //非法 public B(){ A.this.v1 = 10; v2 = 20; this.v1 = 30; } } } public class TestA { public static void main(String[] args){ A a = new A(); A.B b = a.new B(); b.v1 = 1000; } } 静态内部类 在方法外部用static修饰的内部类称为静态内部类 静态内部类中可以直接访问外部类的静态成员,如果要访问实例成员,必须通过实例访问 在其他类中创建静态内部类的对象时,可以直接用new创建,不必通过外部类实例 在静态内部类中可以定义静态和非静态成员 其他类可以通过完整类名直接访问静态内部类的静态成员 静态内部类举例 class A { //外部类 int v1; int v2; void m1(){ B b = new B(); b.v1 = 100; } stat

文档评论(0)

飞扬的岁月 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档