static修饰的变量和final修饰的变量都不可被对象改变,他们有什么区别?

如题所述

static修饰的变量时可以被对象改变的,但是静态变量最好是通过类名来访问。
final修饰的变量不可以修改。

public class Test {
static int x = 1;
final int y = 2;
public static void main(String[] args) {
Test t = new Test();
t.x = 3; //可以,但是不建议这样使用
Test.x = 4; //应该使用类名来访问静态成员
//t.y = 4; //编译错误
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-14
谁告诉你被static修饰的变量不能被修改?在c/c++中,static表示全局变量,是可以修改的。这里给你说说final变量要注意的地方,final变量声明的时候是可以不指定初始值的,但是只要后面第一次为其赋值,那么它的值就不能够被改变了。
第2个回答  推荐于2018-05-10
static 可以,final只是修饰的引用不可改变,引用所指向的对象是可以改变的本回答被网友采纳
第3个回答  2017-07-05
static变量,访问时候直接用 类名.变量名,存在的意义是可以让本类或其他类的多个对象共享该变量,值是可以改变的。
final是常量,存在意义是说明该变量的值是不可改变的。
相似回答