一、选择题
1. (单选题)
下列哪个叙述是错误的?
- A. 非匿名内部类也可以有(内部)子类。
- B. 内部类不可以是final类。
- C. 不可能用匿名类声明对象,但却可以直接用匿名类创建一个对象。
- D. 匿名子类(和子类有关的匿名类)可以继承父类的方法也可以重写父类的方法。
正确答案:B Java中的内部类可以是final类。final类意味着该类不能被继承,而内部类的主要作用之一就是为外部类提供一种实现细节隐藏的方式,因此有时候我们会希望内部类不能被继承。声明内部类为final类可以实现这一目的。需要注意的是,final关键字既可以用来修饰类,也可以用来修饰方法和变量。
2. (单选题)
下列哪个叙述是错误的?
- A. 内部类的外嵌类的成员变量在内部类中仍然有效。
- B. 内部类中的方法也可以调用外嵌类中的方法。
- C. 内部类的类体中不可以声明类变量(static)变量。
- D.外嵌类的类体中可以用内部类声明对象,作为外嵌类的成员。
正确答案:C
3. (单选题)
ABCD注释标注的哪行代码有错误?
class E { public static void main(String args[]){ int n = 0,m = 0,t = 1000; try{ m = Integer.parseInt("8888"); //A n = Integer.parseInt("ab89"); //B t = Integer.parseInt("1289"); //C } catch(Exception e) {} //D catch(NumberFormatException e) {} } }
- A. A
- B. B
- C. C
- D. D
正确答案:D 在 Java 中,catch 块必须按照从特定到一般的顺序排列,也就是说,具体的异常类型必须在通用的异常类型之前捕获。因此,选项 D 中的 catch 块应该放在 catch(Exception e) 块之前。
4. (判断题)
可以用private或protected修饰内部类。
- A. 对
- B. 错
正确答案:对