第九章 内部类、匿名类与异常类:本章主要讲解内部类、匿名类与异常类9.1内部类:1),内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类。2),内部类成员可以直接访问外部类的私有数据,因为内部类被当成其外部类成员,同一个类的成员之间可以互相访问。但外部类不能访问内部类的实现细节,比如内部类的属性。
9.2匿名类:匿名内部类适合用于创建那些仅需要一次使用的类。比如在命令模式中,当需要传入一个Command对象时,使用匿名内部类将更加方便。从语法的角度来看,定义内部类和定义外部类的语法大致相同,内部类除了需要定义在其他类里面之外,还存在如下两点区别:1),内部类比外部类可以多使用三个修饰符,private,protected,static,外部类不可以使用这三个修饰符2),非静态内部类不能拥有静态成员
9.3异常类:一般情况下,程序中需要对异常进行处理。通过对异常情况的处理,可以发现产生异常的原因,并进行必要的异常处理,从而使程序的执行流程继续下去。
[单选题]

下面程序的运行结果是(    )
public class Demo {
    public static void main(String[] args) {
            try {
               System.out.println(10 / 0);
               System.out.println("除法正常运行");
            } catch (ArithmeticException e) {
               System.out.println("除数不能为0");
            }
        }
}

选项:[输出:除法正常运行, 编译通过,没有结果输出, 编译失败, 输出:除数不能为0]
[单选题]

下面程序的运行结果是(   
public class Demo {
    public static void main(String[] args) {
            try {
               System.out.println(10 / 0);
               System.out.println("
除法正常运行");
            } catch (ArithmeticException e) {
               System.out.println("
除数不能为0");
            }
        }
}


选项:[编译通过,没有结果输出, 输出:除数不能为0
, 输出:除法正常运行, 编译失败
]
[单选题]下列关于自定义异常的说法中,错误的是(  

选项:[自定义异常必须继承Error, 自定义异常要继承Exception, 自定义异常可以在构造方法中用super关键字传递异常信息给父类, 自定义异常继承Exception类后,具有可抛性]
[单选题]以下对于trycatch语句描述正确的是(    

选项:[try...catch语句处理程序中的bug, trycatch语句处理程序中的错误, try...catch语句处理程序中的异常, 以上说法都不正确]
[多选题]下面(      )选项可以使用static关键字修饰。

选项:[局部变量, 成员内部类, 成员变量, 成员方法]
[单选题]

public class Example {
    public static void main(String[] args) {
        try{
            int rst = 4/0;
            System.out.println("rst = "+rst);
        }catch(Exception e){
            System.out.println("catch
语句块执行");
            return;
        }finally{
            System.out.println("finally
语句块执行");
        }
        System.out.println("
程序继续向下执行");
    }
}
运行以上程序,输出的结果是(   

选项:[catch语句块执行 finally语句块执行
, catch语句块执行, 0 程序继续向下执行, catch语句块执行 程序继续向下执行]
[多选题]关于内部类,下面说法正确的是(      

选项:[成员内部类是外嵌类的一个成员,可以访问外嵌类的其它成员, 内部类中不可以声明类变量, 外嵌类可以访问成员内部类的成员, 内部类可以被修饰为static内部类]
[单选题]

下列程序段的运行结果为(      )

public class Test{

           public static void foo(int i){

               try{

                   if(i==1){

                       throw new Exception();

                   }

                   System.out.print("1");

               }catch(Exception e){

                   System.out.print("2");

               }finally{

                   System.out.print("3");

               }

               System.out.print("4");

           }

           public static void main(String[] args){

               foo(1);

           } 

}

选项:[123, 234, 1234, 编译失败]
[单选题]

自定义的异常类必须继承自Exception或其子类。()

选项:[对, 错]
[单选题]throws声明在一个方法上,说明这个方法一定会抛出异常。(   

选项:[对, 错]
[单选题]

编译异常如果产生了,要求我们必须处理,要么捕获,要么抛出。()

选项:[错, 对]
[单选题]

匿名内部类其实就是一个没有类名的内部类。(    

选项:[错, 对]
[单选题]

throw关键字用于在方法上声明抛出异常的实例对象。(     

选项:[对, 错]
[单选题]下列关于匿名内部类的描述,错误的是(      

选项:[匿名内部类的前提是必须要继承父类或实现接口, 匿名内部类的格式是"new 父类(参数列表) 父接口(){}", 匿名内部类是内部类的简化形式, 匿名内部类可以有构造方法]
[单选题]下列符号中,(       )用于分隔throws关键字抛出的多个异常。

选项:[,, &, ;, |]

温馨提示支付 ¥3.00 元后可查看付费内容,请先翻页预览!
点赞(0) dxwkbang
返回
顶部