黑马程序员技术交流社区
标题:
代码块的执行顺序
[打印本页]
作者:
孙铭泽
时间:
2012-8-20 22:28
标题:
代码块的执行顺序
构造代码块,局部代码块,构造方法,这里面的东西我有点混淆了,不知道是怎样体现执行的 ,
求用小程序来体现,并讲解一下。
作者:
杨鹏鹏
时间:
2012-8-20 22:49
package com.itheima.test;
public class HelloWorld extends Hello{
{
// 普通代码块2
System.out.println("普通代码块2执行");
}
Hello hello=new Hello();
static{
// 静态代码块
System.out.println("静态代码块执行");
}
HelloWorld(){
System.out.println("构造方法执行");
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
HelloWorld df=new HelloWorld();
}
}
class Hello{
Hello(){
System.out.println("我是父类,我先执行");
}
}
结果为静态代码块执行
我是父类,我先执行
普通代码块2执行
我是父类,我先执行
构造方法执行
作者:
黑马王建伟
时间:
2012-8-20 23:06
public class Hello extends Person{
static{
System.out.println("子类静态代码块");
}
{
System.out.println("子类构造代码块");
}
public Hello(){
System.out.println("子类构造方法");
}
public static void main(String[]args){
Hello h=new Hello();
}
}
class Person{
static{
System.out.println("父类静态代码块");
}
{
System.out.println("父类构造代码块");
}
public Person(){
System.out.println("父类构造方法");
}
}
复制代码
作者:
吴小东
时间:
2012-8-21 18:02
class ClassDemo extends MyClass
{
static
{
System.out.println("ClassDemo,静态代码块");
}
{
System.out.println("ClassDemo,代码块");
}
ClassDemo(){System.out.println("ClassDemo,构造方法");}
public static void main(String[] args)
{
ClassDemo cd = new ClassDemo();
}
}
class MyClass extends Person
{
static
{
System.out.println("MyClass,静态代码块");
}
{
System.out.println("MyClass,代码块");
}
MyClass(){System.out.println("MyClass,构造方法");}
}
class Person
{
static
{
System.out.println("Person,静态代码块");
}
{
System.out.println("Person,代码块");
}
Person(){System.out.println("Person,构造方法");}
}
复制代码
运行结果
Person,静态代码块
MyClass,静态代码块
ClassDemo,静态代码块
Person,代码块
Person,构造方法
MyClass,代码块
MyClass,构造方法
ClassDemo,代码块
ClassDemo,构造方法
作者:
唐杨老师
时间:
2012-8-21 19:51
解释的真清楚.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2