package com.javaSE07.unit;
/*初始化顺序
1.先静态后非静态 ->先初始化静态类型的成员变量后初始化非静态的成员变量,静态成员只初始化一次
2.先声明后赋值 ->每个成员变量声明时获得默认值,然后执行等号后的赋值
3.先属性后方法(构造方法) ->先执行定义属性的初始化,然后执行构造方法的初始化
4.先父类后子类 ->先初始化父类的成员变量,然后初始化子类的成员变量
*/
public class Student {
// 成员变量
private String name="张三";
private int age=getI();
//private int age;
int i;
int j=k; //静态成员变量只初始化一次
static int k = 100;
//先运行静态的方法
static {
System.out.println("静态代码块");
}
{
System.out.println("非静态代码块");
}
{
System.out.println("非静态代码块1");
}
static{
System.out.println("静态代码块");
}
// 构造方法
public Student(String name, int age) {
super();
this.name = name;
this.age = age;
}
public Student() {
super();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getI() {
return i;
}
public void setI(int i) {
this.i = i;
}
public int getJ() {
return j;
}
public void setJ(int j) {
this.j = j;
}
public static int getK() {
return k;
}
public static void setK(int k) {
Student.k = k;
}
}
package com.javaSE07.unit;
public class StudentTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Student stu1 = new Student();
System.out.println("name="+stu1.getName()+",age="+stu1.getAge());
System.out.println("i="+stu1.i+",j="+stu1.j+",k="+stu1.k);
}
}
转载于:https://my.oschina.net/Watto/blog/873285