看到个关于对象生成的小例子,不懂,来请教!

class Tag{
    Tag(int marker){
        System.out.println("Tag("+marker+")");
    }
}
class Card{
    Tag t1 = new Tag(1);
    Card(){
        System.out.println ("Card()");
        t3 = new Tag(33);
    }
    Tag t2 = new Tag(2);
    void f(){
        System.out.println ("f()");
    }
    Tag t3 = new Tag(3);
}
public class OrderofInitialization{
    public static void main(String[] args){
        Card t = new Card();
        t.f();
    }
}


为什么会输出这样的结果?
Tag(1)
Tag(2)
Tag(3)
Card()
Tag(33)
f()
先输出的不应该是构造函数里的内容么?
难道是先生成类里NEW的对象?
为什么会这样?
请教!
我也来说两句 查看全部回复

最新回复

  • jsyzkl (2007-10-05 21:41:56)

    我这样写能不能看懂?
    class Tag
    {
        Tag(int marker)
        {
                System.out.println("这个是Tag类的Tag(int marker)方法");
            System.out.println("Tag("+marker+")");
        }
    }

    class Card
    {
        Tag t1 = new Tag(1);
        Tag t2 = new Tag(2);
        Tag t3 = new Tag(3);
       
        Card()
        {
                System.out.println("这是Card类里的构造方法");
            System.out.println ("Card()");
            t3 = new Tag(33);
        }
       
       
        void f()
        {
                System.out.println("这个Card类里的void f()方法");
            System.out.println ("f()");
        }   
       
    }
    public class OrderofInitialization
    {
        public static void main(String[] args)
        {
            Card t = new Card();
            t.f();
        }
    }
    别笑,你没搞懂类的加载机制