class Counter{
private static long counter;
private final long id=counter++;
private final long id2=50; public String toString(){
return "ID ="+id;
}
/*
private void changeFinal(){
id2=100;
}*///这里就是测试final用的,fianl就是表示常量,不可改变,注释部分编译会报错
}//end of class Counter
public class MyCounter {
public static void main(String [] args){
for(int i=0;i<10;i++){
Counter c = new Counter();
System.out.println(c);
}
Counter cc = new Counter();
System.out.println(cc);
}//end of main
}//end of class MyCounter类变量counter声明后,怎么没有初始化就使用了?
public class StaticVarible
{
private static int counter;
private final int id=counter++;
}这样编译没有错
public class StaticVarible
{
private static int counter;
//private final int id=counter++;
counter++;
}这样就有错了
final可以修饰变量,被final修饰的变量被赋初始值之后,不能对它重新赋值。private final long id=counter++;
针对这个 ,发现并没有详细解释清楚。
2.
public class StaticVarible
{
private static int counter;
//private final int id=counter++;
counter++;///这条语句,不能放在类中,应该放一个方法的内部。类中只能进行属性和方法的声明
}