2 qq 27335751 qq_27335751 于 2015.05.25 19:33 提问

static修饰成员变量的唯一性

关于static修饰的静态变量的唯一性 ,为什么不同对象多次访问TA输出的是一次,如题所示

16个回答

u012271952
u012271952   2015.05.25 19:59

sstatic表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。

被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。

用public修饰的static成员变量和成员方法本质是全局变量和全局方法,当声明它类的对象市,不生成static变量的副本,而是类的所有实例共享同一个static变量。

static变量前可以有private修饰,表示这个变量可以在类的静态代码块中,或者类的其他静态成员方法中使用(当然也可以在非静态成员方法中使用--废话),但是不能在其他类中通过类名来直接引用,这一点很重要。实际上你需要搞明白,private是访问权限限定,static表示不要实例化就可以使用,这样就容易理解多了。static前面加上其它访问权限关键字的效果也以此类推。

bdmh
bdmh   Ds   Rxr 2015.05.25 19:41

看不懂你说什么,怎么多次访问,什么叫输出一次

weiguang111
weiguang111   2015.05.25 19:43

类属性 一样的类就一样的属性呗

liuyuxuan2388
liuyuxuan2388   2015.05.25 20:55

怎么理解多次访问,输出一次?
static 属性随着类加载而在内存里产生,跟随着类,是类的一个静态属性,即类静态变量的生命周期是类的生命周期。

caozhy
caozhy   Ds   Rxr 2015.05.25 22:10

static修饰的变量在同一个程序进程中是唯一的。不同的程序之间不是唯一的。

thegodfatherlsp
thegodfatherlsp   2015.05.26 01:04

static就是内存只存一份,都指向一个地址,所以是静态的

guochaoxxl
guochaoxxl   2015.05.26 07:25

static修饰的成员变量本来就是类的成员变量,无论哪个对象访问都是一样的结果啊,这些才被称为类变量,所以不同对象多次访问TA输出的是一样的。

u011845742
u011845742   2015.05.26 10:16

static 修饰的字段是 属于一个类的。
类在加载的时候就开辟内存空间,并初始化了,后面想调用 TA 直接可以使用 类名.TA 就可以访问。
如果是 类的多个对象 调用的还是 TA (只要没有修改TA的值)。
不过你的问题是 【怎么多次访问,输出一次】 真心不知道你说的是什么。
好好看看把。

wen262856298
wen262856298   2015.05.26 12:12

看不懂你说什么,怎么多次访问,什么叫输出一次

tianyang2008
tianyang2008   2015.05.26 13:53

歧义啊,需要加说明,或者用代码

共16条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片