class Tag
{
Tag(int er)
{
System.out.println("Tag("+er+")");
}
}
class Card
{
Tag t1=new Tag(1); //1
Card() //4
{
System.out.println("Card()");
t3=new Tag(33);
}
Tag t2=new Tag(2); //2
void f() //5
{
System.out.println("f()");
}
Tag t3=new Tag(3); //3
}
public class OrderOfInitialzation
{
public static void main(String[] args)
{
Card t =new Card();
t.f();
}
}原因是:你 说 的 "所有变量一定会在任何一个函数(甚至构造函数)被调用之前完成初始化!":)
{
Tag(int er)
{
System.out.println("Tag("+er+")");
}
}
class Card
{
Tag t1=new Tag(1); //1
Card() //4
{
System.out.println("Card()");
t3=new Tag(33);
}
Tag t2=new Tag(2); //2
void f() //5
{
System.out.println("f()");
}
Tag t3=new Tag(3); //3
}
public class OrderOfInitialzation
{
public static void main(String[] args)
{
Card t =new Card();
t.f();
}
}原因是:你 说 的 "所有变量一定会在任何一个函数(甚至构造函数)被调用之前完成初始化!":)
这个问题约懂一二。
首先,这个问题是初始化顺序问题。
1.构造函数主要作用就是初始化你变量。java保证,你的变量在使用之前绝对初始化。
2.为什么会在主函数后执行,因为任何类中的变量一定会在任何方法前初始化~~~