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


 
有两个关于内部类(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

猜你喜欢

转载自blog.csdn.net/z453588/article/details/83743973