一、只有final无static
public class FinalTest1 { //第一种方式:定义时直接赋值 private final int a = 1; private final int b; private final int c; //第二种方式:构造方法中赋值,注意所有的重载的构造方法都要为其赋值 public FinalTest() { b=2; } //第三种方式:代码块赋值,如果采用此方式,就不能在构造方法中再次为其赋值, //构造代码块中的代码会在构造函数之前执行 { c= 3; } }
二、static和final同时存在
public class FinalTest2 { //第一种方式:定义时直接赋值 private final static int d = 4; private final static int e; //第二种方式:在静态代码块中赋值 static { e = 5; } }