黑马程序员技术交流社区

标题: 什么是实例变量,什么是类变量,它们有什么区别 [打印本页]

作者: 谁想去飞    时间: 2014-11-18 22:06
标题: 什么是实例变量,什么是类变量,它们有什么区别
什么是实例变量,什么是类变量,它们有什么区别
作者: 黑马黄武先    时间: 2014-11-19 02:12
实例变量就是2个事物各有的特征,,,,而(类变量)是他们的共同点,,,比如说,,,两个人都是中国人,这个就是类变量,他们的的共同点,,,,,而他们的名字都不同,需要各自定义变量,..,,这是实例变量
作者: 万合天宜    时间: 2014-11-19 09:10
我也不懂,刚刚懂了,就是不同点和共同点
作者: ⋛⋌⋚JEEP    时间: 2014-11-19 10:47
本帖最后由 ⋛⋌⋚JEEP 于 2014-11-19 10:50 编辑

简单的说,就是数据的共享与不共享的问题。
    类变量就是被static修饰的变量,也可以理解为静态成员变量,该变量(数据)就是被共享的,而且是该类创建的所有的对象所共享的。简单理解就是,共享的数据是单独放在方法区里,内存中就只有为该共享数据开辟一处的内存空间,谁需要就过来调用即可。
    实例变量就是指向对象的变量,也就是非static修饰的具有该对象地址的引用,该实例变量也叫做类引用变量。具体也可以理解成,每个对象都有自己的特有的内容,也就是非static的数据,每个对象在堆内存中都有自己的内存空间,对应指向对象的引用变量的值,也就是对象的地址值都是不同的。
    总而言之,类变量就是共享数据的变量(被static修饰的成员变量),可以被该类所有对象共享,假如其中一个对象改变了共享数据,那么其他对象拿到类变量的数据就是改变后的数据。而实例变量,是每个对象私有的(这里不是指加了private修饰的,只是一种通俗的思想理解),非static的,特有的,因为每个对象都不一样,都有自己的内存特有的内存地址,指向该对象的相应的实例变量不会因为其他对象的实例变量改变而受到影响。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2