第一个,演示一个简单的外部类使用内部类示例:
说明如下:
一.静态内部类可以有静态成员,而非静态内部类则不能有静态成员。 故 A、B 错
二.静态内部类的非静态成员可以访问外部类的静态变量,而不可访问外部类的非静态变量;return d1 出错。 故 D 错
三.非静态内部类的非静态成员可以访问外部类的非静态变量。 故 C 正确
四.答案为C、E
- public class OuterClass
- {
- //内部类
- private class InterClass
- {
- //内部类的构造函数
- public InterClass()
- {
- System.out.println("InterClass Create");
- }
- }
- //外部类的构造函数
- public OuterClass()
- {
- InterClass ic = new InterClass();
- System.out.println("OuterClass Create");
- }
- public static void main(String[] args)
- {
- OuterClass oc = new OuterClass();
- }
- }
- 第二个,选择填空,什么时候地方使用什么样的静态类:
- public class OuterClass {
- private double d1 = 1.0;
- //insert code here
- }
- You need to insert an inner class declaration at line 3. Which two inner class declarations are valid?(Choose two.):
- A. class InnerOne{
- public static double methoda() {return d1;}
- }
- B. public class InnerOne{
- static double methoda() {return d1;}
- }
- C. private class InnerOne{
- double methoda() {return d1;}
- }
- D. static class InnerOne{
- protected double methoda() {return d1;}
- }
- E. abstract class InnerOne{
- public abstract double methoda();
- }
说明如下:
一.静态内部类可以有静态成员,而非静态内部类则不能有静态成员。 故 A、B 错
二.静态内部类的非静态成员可以访问外部类的静态变量,而不可访问外部类的非静态变量;return d1 出错。 故 D 错
三.非静态内部类的非静态成员可以访问外部类的非静态变量。 故 C 正确
四.答案为C、E