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

Java程序设计基础-电子教案第08章.ppt

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java程序设计基础-电子教案第08章

第 8 章 高 级 类 设 计 8.1 抽 象 类 8.2 接 口 8.3 覆盖Object类成员 8.4 垃 圾 收 集 8.5 异 常 8.6 内 部 类 8.1 抽 象 类 Java语言允许类设计者在超类声明一个方法但不提供实现,该方法的实现由子类提供,称为抽象方法。声明抽象方法的格式为: abstract 返回类型 方法名([参数列表]); 声明抽象方法时,没有方法体,要以分号结束。包含抽象方法的类,要定义为抽象类。 子类继承抽象的父类,必须实现父类定义的抽象方法,实现抽象方法要按照覆盖方法的规则来实现。如果子类不实现父类的抽象方法,子类就含有从父类继承的抽象方法,所以这时子类也必须定义为抽象类,这个抽象方法就要一直由子类传递下去,直到一个子类实现了这个方法,这个子类才能被实例化。 8.2 接 口 接口与抽象类最大的区别是接口中的方法必须都是抽象方法。 定义接口要使用interface关键字来代替class,其格式为: [修饰符]interface 接口名{ 接口成员 } 对接口成员的定义有以下特殊的规定。 (1)接口中的域: ? 总是默认地使用public 、static和 final为修饰符,不能用private和protected作访问控制符。 ? 必须赋初值。 (2)接口中的方法: ? 总是默认地使用public abstract为修饰符, 不能用private和protected 作访问控制符。 ? 不能定义为static方法。 接口不能被实例化,只能被其他的类来实现,实现接口的类和接口之间没有父子关系,这和抽象类是不同的。如果在类中实现接口,使用implements关键字,格式为: [修饰符] class 类名 [extends 父类名] implements 接口名列表{ 类成员 } 由于一个类可以实现多个接口,接口名之间用逗号隔开。 实现接口的类一定要实现接口中定义的抽象方法,如果没有实现接口的抽象方法,则这个类也应该被声明为抽象类。实现接口的方法要注意:方法的访问控制必须为public,这是因为在接口中的抽象方法必须为public。 实现接口的同时也可以继承类 。 接口也可以使用extends关键字,来继承父接口,而且可以继承一个以上的接口。 类只能有从另一个父类继承,接口可以继承多个接口,类可以实现多个接口。 8.3 覆盖Object类成员 8.3.1 equals( )方法 覆盖后的equals方法对本对象和参数对象的域逐个进行比较,当两个对象的所有域都相同时会返回true,否则返回false。要保证比较的对象类型相同,就必须在比较前先使用instanceof操作符对obj参数进行检验 。 8.3.2 hashCode( )方法 hashCode可以看作是一个对象的ID号,它是通过一些指定的算法实现的。 Object类提供了方法public int hashCode(?)来求得hashCode,该方法返回整数,这个整数就是该对象的hashCode。 hashCode(?)方法是根据对域计算得出的整数,而equals方法是判断对象的所有域是否相同;hashCode方法中并不一定是所有的域都参与运算,equals方法中要比较所有的域。 8.3.3 toString方法 Object对象中的toString方法返回的是字符串: 实例的类型 + “@” + Hash码 8.4 垃 圾 收 集 Java语言提供了垃圾收集机制对对象占用的内存进行管理,主要是对不再使用的对象所占用的内存空间进行回收。 垃圾收集的目的就是找到并删除不能“达到”的实例。不能“达到”的实例也就是不能访问到的、不能使用到的实例。 (1)只有JVM能决定垃圾收集的确切时间,程序员只能使用System.gc( )方法,请求进行垃圾收集,但是否收集还是由JVM决定。 (2)实例在被收集前,要被确定能够被收集,条件是没有任何活的线程能够“达到”该实例,即所有活线程中没有能够“达到”该实例的引用变量。 (3)一个对象被收集之前,都会保证运行一次Object类的fin

文档评论(0)

ligennv1314 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档