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