第08章 的内部类与异常.pptx

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

第8章 内部类与异常类8.1 内部类在java中有时候会需要只定义了一两个方法的类或者接口,该类也只被某一个类调用(实现)。此时,我们可以使用内部类。内部类:在一个类中定义的另一个类外嵌类:包含内部类的类称为内部类的外嵌类。外嵌类的成员变量在内部类中仍然有效,内部类中的方法也可以调用外嵌类中的方法。8.1 内部类内部类的类体中不可以声明类变量和类方法。外嵌类的类体中可以用内部类声明对象,作为外嵌类的成员。内部类仅供它的外嵌类使用,其他类不可以用某个类的内部类声明对象例如:某种类型的农场饲养了一种牛,但不希望其他农场饲养,则,可以将这种牛作为该农场的内部类。(例8-1)8.1 内部类内部类还可以定义在方法体内public class Hapiness{ interface Smiler{ public void smile(); } public static void main(String[] args){ class Happy implements Smiler{ public void smile(){ System.out.println(:-}); } } Happy happy=new Happy(); happy.smile(); } } 8.2 匿名类有时候,内部类声明只为在类里面用它来创建一个对象(只用一次),因而,对很多情况而言,这个类有没有名字,或名字叫什么无关紧要。可有可无的东西,干脆不要!为了简洁开发,类名使用匿名,程序员关心的只是它的实例名. 8.2 匿名类// 创建实例 Runner runner=new Runner(); // 定义类 Public class Runner implements Runnable{ public void run(){ // do sth } } Runnable runner=new Runnable(){ public void run(){ // Run statememnt } } 8.2.1与子类有关的匿名类如果没有显示声明一个类的子类,却又想用这个子类来创建对象,该怎么办?Java中可以直接用一个类的类体来创建一个子类对象该类体被认为是一个子类去掉类声明以后的类体,称为一个匿名类8.2.1与子类有关的匿名类New Bank(){ 匿名类的类体;}Class 匿名类 extends Bank{定义}匿名类对象 a= new 匿名类()匿名类就是一个子类,由于无名可用,所以不可能用匿名类声明对象,但却可以直接用匿名类创建一个对象例如:Bank是类,则以下代码就是用Bank的一个子类(匿名类)创建对象8.2.1与子类有关的匿名类匿名类可以继承父类的方法也可以重写父类的方法使用匿名类时,必然是在某个类中直接用匿名类创建对象,因此匿名类一定是内部类,匿名类可以访问外嵌类中的成员变量和方法匿名类的类体中不可以声明static成员变量和static方法8.2.1与子类有关的匿名类由于匿名类是一个子类,但没有类名,所以在用匿名类创建对象时,要直接使用父类的构造方法尽管匿名类创建的对象没有经过类声明步骤,但匿名对象的引用可以传递给一个匹配的参数,匿名类的常用的方式是向方法的参数传值。8.2.2 和接口有关的匿名类假设Computable是一个接口,Java允许直接用接口名和一个类体创建一个匿名对象,此类体被认为是实现了Computable接口的类去掉类声明后的类体,称作与接口有关的匿名类。如:new Computable() { 实现接口的匿名类的类体};8.2.2 和接口有关的匿名类如果方法的传递参数是一个接口,此时可以利用匿名类作为参数传递给该方法。例如Void f(Computable x)//参数x的类型为接口在调用f方法时,可以传递一个匿名类给参数x:f(new Computable (){……})示例8-3演示了接口有关的匿名类的用法注意单纯的嵌套类一般不建议使用!但它在java核心类中都存在,如接口Map中的Entry,我们应该了解并能解读这种方法. 匿名类相对而言有用得多,在解耦合和事件回调注册中很常见,大家应该对它的运用融会贯通. 用得好都是优点,用得不好都是缺点。8.3 异常类所谓异常就是程序运行时可能出现一些错误Java的异常出现在方法调用过程中,即在方法调用过程中抛出异常对象,终止当前方法的继续执行,同时导致程序运行出现异常,并等待处理例如,流对象在调用read方法读取不存在的文件时,会抛出异常对象:IOException,该对象可以通过调用以下方法得到或输出有关异常信息Public String getMessage();Public void printStackTrace();Public String

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档