final,static,const在使用上有什么区别?
网上找到的,保留了
JAVA中——final、static
final:
final修饰类:该类不可继承
final修饰方法:该方法不能被子类覆盖(但它不能修饰构造函数)
final修饰字段属性:属性值第一次初始化后不能被修改
使用final可以提高程序执行的效率,将一个方法设成final后编译器就可以把对那个方法的所有调用都置入“嵌入”调用里。
static:
static修饰成员函数则该函数不能使用this对象
static不能修饰构造函数、函数参数、局部成员变量
static修饰成员字段则当类被虚拟机加载时按照声明先后顺序对static成员字段进行初始化。
static修饰语句块:当类被虚拟机加载时按照声明先后顺序初始化static成员字段和static语句块
static所修饰的方法和字段只属于类,所有对象共享,java不能直接定义全局变量,是通过static来实现的。
java中没有const,不能直接定义常量,是通过static final组合来实现的。
C#中——readonly、const
readonly、const是c#中的两种常量
readonly:为运行时常量,程序运行时进行赋值,赋值完成后便无法更改,也称为只读变量。
const:为编译时常量,程序编译时将对常量值进行解析,并将所有常量引用替换为相应值。