`

有两个关于内部类(Inner Class)的示例

阅读更多
第一个,演示一个简单的外部类使用内部类示例:
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
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics