java声明常量

来源:百度知道 编辑:UC知道 时间:2024/09/23 04:50:02
在Java中,在变量声明中加入final关键字代表常量,加入static关键字代表类变量,但,为什么一般情况下把static和final结合一起声明一个常量呢?
求高手指教!!

static用来修饰属性时称为静态属性,不属于某个具体的对象,属于类,但是所有的对象都能对其进行修改
单个final修饰的属性并不是常量,final表示的是不可改变性,但是属于某个具体的对象
两个加起来就是一个属于类并且不可改变的属性,即常量。

final :
1 可以声明常量
2 同时也可让变量 “一次性”
3 用来修饰类中,类就不可被继承(相当c# 中的 sealed )
而在这里, final 和 static 则就是为了让 变量 只能赋值一次 ,这样在某些情况下 程序员不犯错(实际中经常 在别的类中 不小心 赋值了 ,程序结果可能就错了) , 因为变量赋值一次后面就不能修改其值了。。。。^_^

static 是静态变量所有对象共享,这样就可以节省下内存空间了,同时可以通过类应用来直接获得而不用创建对象了。
final 是该变量只能初始化一次。这样就可以避免恶意或者无意的修改了。两者加起来就是达到了使用方便而且安全的目的了。

final修饰的变量表示只能赋值一次,而后不可更改,但是仍旧依存于对象而存在,static代表类变量,一个成员被声明为static,它就能够在它的类的任何对象创建之前被访问,而不必引用任何对象,也就是说不依存于对象而存在,final+static表示在赋值后不可修改的一直存在的变量,不就是常量了吗

因为final表示常量,是永远不变的。也就意味着这个类不管有多少实例,每个实例里的这个属性都是相同的。既然都相同从性能上考虑那为什么要这么多个,而不共用一个呢?而static表示的是类变量,也就是说这个类的所有实例都共用这个变量,所以经常会吧static final一起使用

为了使常量在类没有产生对象的情况下也能调用 这样更为方便