作用:
用来初始化类或对象的信息(即初始化类或对象的成员变量)
代码块的修饰:
只能使用static进行修饰。
代码块的分类:
静态代码块:使用static修饰
非静态代码块:没有使用static修饰
具体使用
静态代码块
随着类的加载而执行
由于类的加载只会执行一次,进而静态代码块的执行,也只会执行一次
作用:用来初始化类的信息
内部可以声明变量、调用属性或方法、编写输出语句等操作
静态代码块的执行要先于非静态代码块的执行
如果声明有多个静态代码块,则按照声明的先后顺序执行
静态代码块内部只能调用静态的结构(即静态的属性、方法),不能调用非静态的结构(即非静态的属性、方法)
非静态代码块
随着对象的创建而执行
每创建当前类的一个实例,就会执行一次非静态代码块
作用:用来初始化对象的信息
内部可以声明变量、调用属性或方法、编写输出语句等操作
如果声明有多个非静态代码块,则按照声明的先后顺序执行 非静态代码块内部可以调用静态的结构(即静态的属性、方法),也可以调用非静态的结构(即非静态的属性、方法)
练习
无代码块结构!!!
public class User {
private String userName;
private String password;
private long registrationTime;
public User() {
System.out.println("新用户注册");
registrationTime = System.currentTimeMillis(); //获取系统当前时间
userName = System.currentTimeMillis() + " ";
password = "123456";
}
public User(String userName, String password) {
System.out.println("新用户注册");
registrationTime = System.currentTimeMillis();
this.userName = userName;
this.password = password;
}
public void setUserName(String userName) {
this.userName = userName;
}
public void setPassword(String password) {
this.password = password;
}
public String getUserName() {
return userName;
}
public String getPassword() {
return password;
}
public long getRegistrationTime() {
return registrationTime;
}
public String getInfo(){
return "用户名:" + userName + ",密码" + password + ",注册时间" + registrationTime;
}
}
有代码块结构!!!
public class User {
private String userName;
private String password;
private long registrationTime;
public User() {
// System.out.println("新用户注册");
// registrationTime = System.currentTimeMillis(); //获取系统当前时间
userName = System.currentTimeMillis() + " ";
password = "123456";
}
// 这两个功能是共有属性,在创建对象后自动生成。所以可以写成代码块结构~~
{
System.out.println("新用户注册");
registrationTime = System.currentTimeMillis();
}
public User(String userName, String password) {
this.userName = userName;
this.password = password;
}
public void setUserName(String userName) {
this.userName = userName;
}
public void setPassword(String password) {
this.password = password;
}
public String getUserName() {
return userName;
}
public String getPassword() {
return password;
}
public long getRegistrationTime() {
return registrationTime;
}
public String getInfo(){
return "用户名:" + userName + ",密码" + password + ",注册时间" + registrationTime;
}
}