本帖最后由 余清兰 于 2012-6-14 13:43 编辑
lisi和zhangsan都有相同国籍,我不想给p和p1两个对象的成员变量都赋值”cn”,这样比较浪费内存资源,这时我想用static来让”cn”这个数据共享,就不用在堆内存的两个对象中都有成员变量cn,我写了下面代码,确实达到了输出时lisi和zhangsan的国籍都是cn的功效,但是这个功劳到底是static的还是this实现的呢?如果是this实现的,那我怎么改成让static实现,并且和this结合一起使用让代码写得更有意义呢?求详解,原理越深越细越好。 - class Person
- {
- private String name;//成员变量(实例变量)
- static private String country;//静态的成员变量(类变量)
- Person(String name)
- {
- this.country="cn";
- this.name=name;
- System.out.println(name+":"+country);
- }
- }
- class PersonDemo
- {
- public static void main(String[] args)
- {
- Person p = new Person("lisi");
- Person p1 = new Person("zhangsan");
- }
- }
复制代码 |