-
final
当一个变量被final修饰的时候,该变量只有一次赋值的机会。
public class final1 {
public void method1(){
final int i = 5;
i = 1;//i已经被赋值一次,该句会出现编译错误
}
}
如果在声明的时候未赋值,那么可以在后面代码进行唯一的一次赋值。
public class final1 {
public void method1(){
final int i;
i = 6;//i在第3行被声明没被赋值,第4行是第1次赋值
i = 1;//i已经被赋值一次,该句会出现编译错误
}
}
如果final修饰的是参数,能否在方法里给这个参数赋值?
public class final1 {
public void method1(final int j){
j = 5;
}
}
编译结果:
java: 不能分配最终参数j
final初始化补充
final 修饰的变量在方法中,可以先初始化再赋值。
但是如果是全局变量,必须在初始化的时赋值,不然会报错。
public class final1 {
final int j;//会报错
public void method1(){
final int i;//不会报错
}
}
final修饰的类不能被继承 ,final定义的方法不能被重写 ,final定义的常量不能被重写赋值。
-
表达式
- 以;结尾的一段代码,即为一个表达式。表达式是由变量、操作符以及方法调用所构成的结构。如下所示:
-
int i = 5; System.out.println();
public class 表达式 { public static void main(String[] args) { //每一句话都是一个表达式 int i = 5; System.out.println(5); } }
; 也是一个完整的表达式
-
public class 表达式 { public static void main(String[] args) { //一个空;也是一个表达式 ; ; ; ; } }
有双引号的5,输出为string类型的5;//System.out.println("5");
-
没有双引号的5,输出为int类型的5;//System.out.println(5);
-
块
- 从{ 开始 到对应的} 结束,即一个块
-
public class 表达式 {//类对应的块 public static void main(String[] args) {//主方法对应的块 System.out.println(5); } }