您的位置:首页 > 其它

关于类变量、实例变量之间的区别.md

2017-01-04 00:00 190 查看
在写项目的时候突然想用类成员变量用来存数一些配置信息,恍惚脑袋短路,突然发现在这里有一些疑惑测试一下并记下来。

上代码


public class TestClass {
private int a= 5;//实例变量

private static int b = 6; //类变量

private static final int c = 6; //常量

public static void main(String[] args) {
// TODO Auto-generated method stub
TestClass testA = new TestClass();
//testA.a = 10;
testA.b = 20;
System.out.println(    "testA内部的      a = " + testA.a
+ "      b = " + testA.b
+ "      c = " + testA.c);

TestClass testB = new TestClass();
testB.a = 15;
testB.b = 30;
System.out.println(    "testB内部的      a = " + testB.a
+ "     b = " + testB.b
+ "      c = " + testB.c);

TestClass testC = new TestClass();
System.out.println(    "testC内部的      a = " + testC.a
+ "      b = " + testC.b
+ "      c = " + testC.c);
}

}

- console结果
>testA内部的      a = 5     b = 20      c = 6
testB内部的      a = 15     b = 30      c = 6
testC内部的      a = 5      b = 30      c = 6
- 结论

**  在 声明类里面方法外的成员变量的中前面的修饰词 `static final` 会有不同的结果**
- **没有修词的**  是实例化后的对象变量(实例变量)不会影响其他该类实例化的对象
- **static**   会升级成为类变量, 所有由该类实例化的对象都会受到影响
- **static final**  会变成类常量,定义初始化后,无法修改
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: