- 使用范围:
final只能修饰变量;const可以修饰变量、常量构造函数、变量值(放在“=”右边);
1.1. const可以修饰引用变量时,必须调用常量构造函数;
1.2. const修饰构造函数时,称为常量构造函数,该类的所有成员都必须使用final修饰;即该类的对象创建之后不可修改属性。
1.3. const修饰变量值时,它意味着对象的整个状态编译时完全确定,并且完全不可变;
var a=1;
var list=const {a,2,3,4};//报错,集合元素必須是编译时常量
list[1]=66;//报错,不允许对集合做任何改变
2.变量初始化时机:
final变量在第一次使用时被初始化,可在声明时赋值也可在构造函数中赋值。
const变量是在编译时初始化,必须在声明时赋值,且赋值内容必须在编译时确定。赋值内容将作为常量保存,之后声明相同内容的const变量将会直接复用。
final time = DateTime.now();//不会报错
const time = DateTime.now();//将会报错
2022-02-13
网友评论