JAVA代码块的分类及具体使用
普通代码块
直接用{}定义:
public class TestDemo{
public static viod main(String[] args){
{
int a=1;
int b=2;
system.out.println(a);
}//普通代码块
int c=10;
system.out.println(c);
}
}
一般情况下普通代码块使用较少;
构造代码块
构造代码块也叫实例代码块,在执行时实例代码块会在构造方法之前执行。定义一个student类举例:
public class Student{
public int age;
public char name;
public char address;
public Student(){
System.out.println("不带参数的构造方法");
}
//实例代码块
{
this.age=18;
this.name="玛卡巴卡";
this.address="中国";
}
静态代码块
public class Student{
private String name;
private String gender;
private int age;
private double score;
private static String classroom;//静态属性,存放在方法区
public static void study(String name){
System.out.println(name+"在学习");
}
static{
classroom="403";//静态代码块只能访问静态变量和静态方法;
study("小王");
System.out.println("静态代码块");
}
静态代码块即被static修饰的实例代码块,静态代码块只能访问静态变量及静态方法;记住被static修饰的与对象无关即可,不能访问任何通过对象的引用来访问的变量或者方法。
实例代码块,静态代码块及构造方法的执行顺序
public class Student {
private String name;
private String gender;
private int age;
private double score;
private static String classroom;//静态属性,存放在方法区
public static void study(String name){
System.out.println(name+"在学习");
}
{
this.name="玛卡巴卡";
this.age=18;
System.out.println("实例代码块");
}
static{
classroom="403";//静态代码块只能访问静态变量和静态方法;
study("小王");
System.out.println("静态代码块");
}
public Student(){
System.out.println("不带参数的构造方法");
}
public static void main(String[] args) {
Student student=new Student();
System.out.println(student.name+"在写代码");
System.out.println("--------------------");
Student student1=new Student();
System.out.println(student1.name+"在看网课");
}
}
由此可见他们的执行顺序为:静态代码块》实例代码块》构造方法;
且静态代码块只执行一次;