一道java靜態內部類試題:
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 declaration 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();
}
靜態內部類的三個原則:
1. 靜態內部類可以有靜態成員,而非靜態內部類則不能有靜態成員
2. 靜態內部類的非靜態成員可以訪問外部類的靜態變量,而不可以訪問外部類的非靜態變量
3. 非靜態內部類的非靜態成員可以訪問外部類的非靜態變量
根據以上三個原則可知答案爲CE。