class test{
  int k;
  public test(){
   .........//程序段,算出k的值
  }
  public int getK(){
    return k;
  }
}class try{
  public try(test t){
   System.out.print(t.getK());
  }
}
在另外一个类里调用test test1 = new test();
test test2 = test1;//这里有一个疑问?test2会不会执行test内构造函数的程序段,还是直接能得出k的值
try try1 = new try(test2);//这里也有一个疑问?这样,在try里,t会不会执行test内构造函数的程序段,还是直接能得出k的值

解决方案 »

  1.   

    test test1 = new test();已经构造,其他都是在引用它
      

  2.   

    class T{
      public T(Test t){
       System.out.println(t.getK());
      }
    }public class Test 
    {
    int k;

    public Test()
    {
    k = (int)(Math.random()*10 + 1);
    }

    public int getK()
    {
    return k;
    }

    public static void main(String[] args)
    {
    Test test1 = new Test();
    Test test2 = test1;
    T try1 = new T(test1);
    T try2 = new T(test2);
    }
    }将输出一样的结果