第5讲 面向对象特性.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文档。上传文档
查看更多
* 内部类使用注意事项: 内部类的类体中不可以声明static成员,而只有顶层类才能定义型成员。如果内部类需要使用static型成员,这个成员必须在外部类中加以定义。 这里不考虑静态内部类,因为没有什么特别的限制 1.内部类不允许静态修饰(包括静态域,方法,静态初始化) 2.内部类可以直接访问外围类的方法。 3.内部类可以直接访问外围类的成员变量,语法为:OuterClass.this.FIELDNAME。 4.如果要访问方法的参数,必须为final,主要针对匿名类和临时内部类而已,因为他们定义在方法体内。这里把方法体的临时变量作为一个延生,也是必须为fianl的。这样做是为了规范内部类的行为. 这是出于变量作用域的限制考虑. 内部类能使用的变量局限于内部类里面声明的变量, 一般情况下不能使用外面的. 但如果外部变量被声明为final的, 就相当于是一个全局变量, 它的生命周期就扩展到内部类里面了, 因此可以访问. 加final修饰符是为了防止该变量指向其他引用,比如你将这个变量指向null而外部类却毫不知情的继续在使用这个null的变量 * * begin 4.自定义异常 不是由Java系统监测到的异常(下标越界,被0-除等),而是由用户自己定义的异常. 用户定义的异常同样要用try--catch捕获,但必须由用户自己抛出 throw new MyException。 必须继承自Throwable或Exception(建议)。 例5-19 实例分析 例 :在定义银行类时,若取钱数大于余额则作为异常处理(InsufficientFundsException). 思路:产生异常的条件是余额少于取额, 因此是否抛出异常要判断条件。 取钱是withdrawal方法中定义的动作,因此在该方法中产生异常。 处理异常安排在调用withdrawal的时候,因此withdrawal方法要声明异常,由上级方法调用. 要定义好自己的异常类 类java.lang.Object 类java.lang.Object处于java开发环境的类层次的根部,其它所有的类都是直接或间接地继承了此类。 equals() :比较两个对象(引用)是否相同。 getClass():返回对象运行时所对应的类的表示,从而可得到相应的信息。 toString():用来返回对象的字符串表示。 finalize():用于在垃圾收集前清除对象。 notify(),notifyAll(),wait():用于多线程处理中的同步。 主要内容 面向对象特性 *** 接 口 ** 泛型类 抽象类 异常类 内部类 内部类 内部类 匿名类 内部类 内部类:在一个类的内部嵌套定义的类,也称嵌套类。 外嵌类:包含内部类的类。 范围: 可以是其它类的成员 在语句块的内部定义 在表达式内部匿名定义 例子5-15 特性 一般用在定义它的类或语句块之内, 在外部引用它时必须给出完整的名称, 名字不能与包含它的类名相同。 可以使用外嵌类的成员变量,也可以使用它所在方法的局部变量。 可以声明为abstract 、private或protected。 不可以声明static成员 例子: TwoListenInner.java 2.匿名类 与类关联:例子5-16 匿名类是一种特殊的内部类,它是在一个表达式内部包含一个完整的类定义。 匿名类就是一个子类,由于无名可用,所以不可能用匿名类声明对象,但却可以直接用匿名类创建一个对象。 主要用途:参数传值。 new B() { 匿名类的类体 } void look(Student stu){ … //stu 调用Student类中的方法 } 方法调用时, 传递一个匿名对象: zhang.look()( new Student (){ … // 继承或重写Student类的方法 } ); interface Student ? 与接口关联 Java允许直接用接口名和一个类体创建一个匿名对象。 例子5-17 new Computable() { 实现接口的匿名类的类体 } 方法的参数是接口类型 void f(Computable x){ … } 调用方法: f( new Computable(){ … //实现接口的所有方法 } ); 3.内部类的优缺点 优点:节省编译后产生的字节码文件的大小 缺点:使程序结构不清楚 目 录 异常类 内部类 面向对象特性 接 口 泛型类 抽象类 范型类 目的是可以建立具有类型安全的集合框架,如链表、散列映射等数据结构. 1.泛型类声明 2.使用泛型类声明对象 3.泛型接口 1.泛型类声明 格式:class

文档评论(0)

kehan123 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档