黑马程序员技术交流社区
标题:
静态成员变量的修改
[打印本页]
作者:
Vision-V
时间:
2016-7-3 23:29
标题:
静态成员变量的修改
本帖最后由 Vision-V 于 2016-7-3 23:30 编辑
//下面的代码可以直接copy,然后运行哦~
class Deme_Student { //测试学生类
public static void main(String[] args) {
new Student().print(); //使用匿名对象引用方法
//输出A
Student s1 = new Student("老龚龚",30); //创建了参数对象
s1.print(); //对象引用方法
//输出B
new Student().print(); //使用匿名对象引用方法
//输出C
//A与C的结果会是一样的吗?
}
}
class Student {
static String name = "老龚"; //
静态成员变量
int age = 26; //成员变量
public Student() {} //空参构造方法
public Student(String name,int age) {
//参数构造方法
this.name = name;
this.age = age;
}
public void print() { //方法:打印所有元素
System.out.println(name + "说他今年" + age + "岁");
}
}
/*
结论:
一般我们在使用
静态成员变量
的情况下,是不会再修改该成员变量了,因为我们就是想这个类(Student)里面的所有对象拥有这一个共同的属性(name)且拥有固定的值("老龚"),但是如以上代码,当我们创建这个类Student的时候,定义了
静态成员变量
的初始化值,而在测试类学生类中,使用了
参数构造
创建对象
(或者使用set方法修改了静态成员变量)
,且输入了一个与静态成员变量(name)初始值不一样的值("老龚龚"),这时候,我们再次创建的对象默认的静态成员变量(name)初始化值就变成我们修改过后的值("老龚龚")了.
静态成员变量存在于方法区,自解压文件的静态区,当我们在该类的外部修改了静态成员变量的初始化值,修改后的值会覆盖静态区中的初始值,从此占山为王.
*/
作者:
新人—小明同学
时间:
2016-7-3 23:35
{:2_36:}加油↖(^ω^)↗
作者:
Vision-V
时间:
2016-7-3 23:38
新人—小明同学 发表于 2016-7-3 23:35
加油↖(^ω^)↗
素阔以~~~ 一起干巴爹...
作者:
sgzqsw
时间:
2016-7-3 23:55
继续努力,上就业班。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2