黑马程序员技术交流社区
标题:
关于java语句执行顺序,和大家分享一下。
[打印本页]
作者:
吴小铁你好
时间:
2012-6-7 13:39
标题:
关于java语句执行顺序,和大家分享一下。
一。JAVA中执行顺序
静态块
块
构造器
父类构造器
二。JAVA中赋值顺序
静态块直接赋值
块直接赋值
父类继承的属性已赋值
静态变量声明时赋值
成员变量声明时赋值
构造器赋值
作者:
赵兵锋
时间:
2012-6-10 01:42
public class Main extends PP{
static{//子类的静态初始块
System.out.println("Main:Static Block Init");
}
static int a=U.f("Main:static a Init");//子类的静态域
{//子类的普通初始块
System.out.println("Main:Block Init");
d = 10;//尽管d在后面定义的,但这里已经有效。
}
int d=U.f("Main:d Init");//子类的成员变量
public Main() {//子类的无参构造方法
System.out.println("Main:Construct Init");
}
public static void main(String[] rgs) {
new Main();//new一个子类对象
}
}
class PP{//父类
static int c = U.f("PP:static c Init");//父类的静态域
int b=U.f("PP:b Init");//父类的成员变量
static{//父类的静态初始块
System.out.println("PP:Static Block Init");
}
{//父类的普通初始块
System.out.println("PP:Block Init");
}
PP(){//父类的无参构造方法
System.out.println("PP:Construct Init");
}
}
class U{
static int f(String s){
System.out.println(s);
return 1;
}
}
复制代码
最先开始的就是类的静态域和静态初始块,这两者先后顺序以在代码中出现的顺序为准。先是父类的静态部分,再是子类的静态部分。
接着是父类的成员变量和普通初始块,两者先后顺序依然以在代码中的出现顺序为准。这两者完成后,是父类的构造方法。
接下来才是子类的成员变量和普通初始块,先后顺序依然以代码里的先后顺序为准,最后才是子类的构造方法。
作者:
王月
时间:
2012-6-10 01:46
哇,很晚了,lz辛苦,早点睡吧
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2