日期:2014-05-20  浏览次数:20813 次

关于java声明的问题!
class   Qee
{
public   static   void   main(String[]args)
{
Qqq   q=new   Qqq();
Qww   w=new   Qww(q);
System.out.println(q.get());
}
}
class   Qww
{
Qqq   k;//我想知道这里的声明和Qqq   k=new   Qqq();有什么区别
Qww(Qqq   q)
{
this.k=q;
k.set(2);
}
}
class   Qqq
{
int   value;
public   void   set(int   i)
{
value=i;
}
public   int   get()
{
return   value;
}
}
//还有这道题的大概意思是什么


------解决方案--------------------
这段代码没有什么太大意义 就是说类Qee有一个类Qww的属性 而类Qww又有一个Qqq类的属性 通过构造函数初始化这个属性

至于Qqq k;//我想知道这里的声明和Qqq k=new Qqq();有什么区别
这里如果写成Qqq k=new Qqq(); 那么这句Qqq k=new Qqq();会在构造函数里面语句执行以前调用 这就是属性的默认初始化

但这里写成Qqq k=new Qqq();没有什么意义 因为Qww只有一个构造函数 确保了k的初始化。