1
程序代码:
public class InitializeBlockDemo {
/**
* @param args
*/
public static void main(String[] args) {
InitializeBlockClass obj=new InitializeBlockClass();
System.out.println(obj.field);
obj=new InitializeBlockClass(300);
System.out.println(obj.field);
}
}
class InitializeBlockClass{
//下面这句在初始化块之前与之后,会影响到field字段的初始值
//public int field=100;
{
field=200;
}
public int field=100;
public InitializeBlockClass(int value){
this.field=value;
}
public InitializeBlockClass(){
}
}
运行截图:
当把public的初始化放到上面时候则显示的200.
规律:
根据前后顺序,按照顺序执行,有构造函数执行构造函数。
2
猜想与方法:
在静态函数中创建一个这个类的对象,然后引用非静态成员。
程序代码:
public class text2 {
public static void main(String arg[]){
Employee text=new Employee();
text.clear();
}
}
class Employee
{
String name;
long salary;
short employee_id;
static int total_employees;
static void clear(){
total_employees=0;System.out.println(total_employees);
new Employee().salary=0;System.out.println(new Employee().salary);
}
}
运行结果截图: