这个程序为啥会编译错误啊

给定 java 程序,如下:
public class Test{
private static final int counter=10;
public static void main(String [] args){
System.out.println(Test.counter++);
}
}
编译运行 Test.java,结果是(C)
A.10
B.11
C.编译错误
D.运行时出现异常

counter 使用了 final 修饰,使用 final 修饰的变量赋值一次后就不可以修改,因此对 counter 自增会编译失败。如有帮助,请采纳。

final 修饰的变量不允许修改

counter已经定义为final,就不可修改了,那么后面代码里又出现了counter++就会报错了呀

final修饰的值不能改变
自加是错误的

final表示不可变的,counter用final修饰了,就不能再进行修改了

counter使用final修饰,不可以在main中访问

一楼说的 final修饰,不可以在main中访问 是什么鬼

counter 使用了 final 修饰,变量赋值一次后就不可以修改,final的翻译是最终的意思,即这个值是最终结果,不允许再次修改。

下面是对final在使用的简介:

  • 如果引用为基本数据类型,则该引用为常量,该值无法修改; 如果引用为引用数据类型,比如对象、数组,则该对象、数组本身可以修改,但指向该对象或数组的地址的引用不能修改。 如果引用时类的成员变量,则必须当场赋值,否则编译会报错。
  • 当使用final修饰方法时,这个方法将成为最终方法,无法被子类重写。但是,该方法仍然可以被继承。
  • 当用final修饰类时,该类成为最终类,无法被继承。简称为“断子绝孙类”。