java 笔试题

有如下代码:
public class OuterClass{
private double d1=1.0;
//下面各代码中可以插入这的代码是 ?(有2个符合条件)

}

A:
class InnerOner{
public static double methodda() {return d1;}
}
B:
public class InnerOner{
static double methodda() {return d1;}
}
C:
private class InnerOner{
double methodda() {return d1;}
}
D:
static class InnerOner{
protected double methodda() {return d1;}
}
E:
abstract class InnerOner{
public abstract double methodda() {return d1;}
}
希望各位高手人帮帮忙?答案是那两个,为什么是这两个,其他的怎么不行,望高手指点。

第1个回答  2011-02-24
答案是C(并不是一个)
原因:内部类中是不能有static的方法或者成员的,且static的方法内部必须访问static的变量,但是d1不是static的,所以AB不是,接着抽象函数是不能有方法体的,E也错
D也错是因为在静态的类中访问了非静态的参数
所以答案只有一个!!本回答被提问者采纳
第2个回答  2011-02-24
A:static方法不能访问实例域
B:同上
E:抽象方法没有方法体

C 对