黑马程序员技术交流社区

标题: 静态代码块、构造代码块和构造函数的区别 [打印本页]

作者: Poskey    时间: 2015-7-14 22:12
标题: 静态代码块、构造代码块和构造函数的区别
静态代码块、构造代码块和构造函数的区别
静态代码块:用于给类初始化,类加载时就会被加载执行,只加载一次。
构造代码块:用于给对象初始化的。只要建立对象该部分就会被执行,且优先于构造函数。
构造函数:  给对应对象初始化的,建立对象时,选择相应的构造函数初始化对象。
创建对象时,三者被加载执行顺序:静态代码块--->构造代码块--->构造函数

//利用代码进行测试 例题:06--06:StaticCodeDemo.java
class Person
{
private String name;
private int age=0;
private static String country="cn";
Person(String name,int age)
{
this.name=name;
this.age=age;
}
static
{
System.out.println("静态代码块被执行");
}
{ System.out.println(name+"..."+age);}
public void setName(String name)
{
this.name=name;
}
public void speak()
{
System.out.println(this.name+"..."+this.age);
}
public static void showCountry()
{
System.out.println("country="+country);
}
}
class StaticDemo
{
static
{
System.out.println("StaticDemo 静态代码块1");
}
public static void main(String[] args)
{
Person p=new Person("zhangsan",100);
p.setName("lisi");
p.speak();
Person.showCountry();
}
static
{
System.out.println("StaticDemo 静态代码块2");
}
}

作者: 时光无痕    时间: 2015-7-14 22:14
总结的很好
作者: 搁浅丶那份    时间: 2015-7-14 23:46
很不错的总结,楼主辛苦了
作者: Yunny    时间: 2015-7-15 00:32
谢谢楼主~!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2