java笔记--静态代码块,构造代码块,构造函数执行顺序
2018-03-31 本文已影响0人
吃饱喝足搬代码丶
//静态代码块先执行,有对象构造代码块先执行然后构造函数
class StaticCode{
static int num;
static
{
num=10;
System.out.print("hahah");
}
StaticCode(){}
static void show(){
System.out.print(num);
}
}
class Person{
private String name;
{//构造代码块,可以给所有对象初始化
//System.out.println("person run");因为一创建对象,构造代码块就执行一次,所以可换位cry()
cry();//直接在这里调用,所有的对象就都有了
}
Person()//是给对应的对象进行针对性的初始化
{
name="baby";
//cry();
}
Person(String name){
this.name=name;
//cry();
}
public void cry(){
System.out.println("wawa");
{
//局部代码块,限定局部变量的生存周期
}
}
public void speak(){System.out.println("name:"+name);}
static void show(){System.out.println("show run");}
}
class test {
static
{
//System.out.print("a");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Person p1=new Person();
p1.speak();
Person p2=new Person("wc");
p2.speak();
new Person();
//Person.show();
}
}
运行:
image.png