public class Parcel11{
class Contents{
private int i = 11;
public int value(){
return i;
}
}
class Destination {
private String Label;
Destination(String whereTo){
Label = whereTo;
}
String readLabel(){
return Label;
}
}
public static void main(String[] args){
Parcel11 p = new Parcel11();
Parcel11.Contents c = p.new Contents();
Parcel11.Destination d = p.new Destination("Tanzania");
}
比如上面这个程序.书上说直接创建内部类的对象,必须得指明这个对象的类型OuterClassName.InnerClassName
可是我去掉Parcel11后,程序也能编译通过,难道书上说错了?
即 Contents c = p.new Contents();这样也是对的!

解决方案 »

  1.   

    书上没说错的他是指后面部分,既p.new Contents();如果去掉p就不行了吧
      

  2.   

    haha它说得不是后面的部分,后面的部分我懂.
    谁能帮我解释一下.
      

  3.   

    既然是内部类,当然对于Parcel11可见,所以不需要Parcel11后,程序也能编译通过,
    即 Contents c = p.new Contents();是对的
      

  4.   

    那什么情况下要OuterClassName.InnerClassName,这样呢?