一道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。