Outer.Inner in = new Outer(new Inner())两边的都类型不一样,而且它们没有什么继承关系,不能这么写吧?
Outer.Inner是Inner类型,new Outer(new Inner())返回的是Outer类型
而new Outer(new Inner())中new Inner()作为一个参数传递给Outer构造方法 ,但是 Inner作为一个内部类,这样的话也传递不了啊?!作者: scott0610 时间: 2013-3-11 16:00
Outer.Inner in = new Outer(new Inner());
这样编写应该是有误的。定义的类型都不一致,不能通过编译。
Outer.Inner:表示内部类对象。
new Outer(new Inner());表示Outer对象的构造函数需要一个Inner对象的参数。但无论怎么样,构造函数返回值都是Outer对象。
所有该句代码有误,不能通过编译。作者: 张宁 时间: 2013-3-11 16:31
class souter {
int a ;
class inner{
int b = 100;
int funb(){
int result = a + b ;
return result;
}
}
}
public class Outer{
public static void main(String[] args) {
souter out = new souter();
souter.inner in =out.new inner();
souter.inner in = new souter(new inner());//我编写了一下,左边是一个inner类,右边是一个带参数的outer类,
//我不知道这句话是怎么用的,初步判断,不存在这种可能,他是错的。
int s= in.funb();
System.out.println(s);
}
} 作者: 董维明 时间: 2013-4-2 21:22
张宁 发表于 2013-3-11 16:31
class souter {
int a ;
class inner{