1. 程式人生 > >有兩個關於內部類(Inner Class)的示例

有兩個關於內部類(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