在java的学习中,看到了静态代码块觉得很有趣。代码如下
package Person;
class Person
{
String name;
int age;
static String city;
void talk()
{
System.out.println("我是" + name + ",今年" + age + "岁,来自"+city);
}
Person()
{
System.out.println("this is 构造");
}
Person(String name)
{
this.name=name;
System.out.println("name:"+name);
}
Person(String name,int age,String city)
{
this.name=name;
this.age=age;
this.city=city;
}
static//静态代码块,一般用来执行初始化。
{
System.out.println("静态代码块 Done");
}
//非静态代码
{
System.out.println("非静态代码 Done");
}
}
public class hello
{
public static void main(String[] args)
{
System.out.println("run");
Person p1=new Person("张三",12,"china");
Person p2=new Person("李四",15,"usa");
Person p3=new Person("王五",17,"japan");
p1.talk();
p2.talk();
p3.talk();
}
}
其中静态代码只会执行一次,而非静态代码在每次new新对象时都会被执行,构造函数最后才会被执行。
static修饰的变量表示全域变量。在所有的实例中,只有一个该变量。
下面这篇文章讲的很详细,Mark一下。
http://liqita.iteye.com/blog/1472717