时间:2016.04.20 发布人:从巴黎飞往纽约
已解决问题
谷歌从巴黎飞往纽约用户在2016.04.20提交了关于“
欧力威j**a变量的区别浅析”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2025-02-02T14:09:38。希望大家能够帮助她。
详细问题描述及疑问:期待您的答案,谢谢你帮我,祝你快乐,愿你事事如意
!
希望以下的回答,能够帮助你。
第1个回答
用户名:wei1184544854
对缺司的怎雷里许于j**a的变量天天见到,但有时候别人问起它们的区别有时候也说不全,所以就找了些**整理了助可光指会整理
类变量也叫静态变量,也就是在变量前加了stat
同ic的变量;实例变量也叫对象变量,即没加static的变量;两者保而次目讲征区别在于:类变量(静态变量)院气自是所有对象**有,其尼探杨标伤现工族中一个对象将它值改变,其他对象得到的就是改变后的结果,并且类变量是可以直接通过类名来调用的如:A.xingS;而实例变量则属对象私有,某一个对象将其值改变,不影响其他对象,实例变量顾名思义是属于实例的,所以只能做政矿通过实例来调用如:Aa=newA();a.name;举个不太恰当的例子:类变量就好比一个人的姓氏,实例变量就相当于人的名字,如果它父亲把姓改了,那它所有的兄弟姐妹姓都得改,但是它们的顶训刚曲相千板红它细快名字还是各用各的。例:代码如下:publicclassA{staticintxingS=0;写专委缩呼社雷//类变量privateintname=0;//实例变量Stringid;//实例变量privateStringcolorType;//实例变量privateintsize;//实例变量privatestaticStringdepart;//类变量finalStringname="zwm";//常量}publicclassB{pub标端员按镇命岩licvoidmain保伯灯陈甲重点江变现(String[]args){Ason1=newA();Ason2=newA();son1.xingS=3;//等同于A.xingS=3;***.name=4;System.out.print宜决引染整老岁学起ln(son2.xingS);//结果为3//类变量是针对所有对象的,所以son1改变xingS,son2的a也改变System.out.println(***.name);/矛古失/结果为0//实例只改变自身的,所联密队们画调以son1对象的n都千情况植许宪抗皇号ame改变,不影响对象son2的name变量}}类变量又叫静态成胶她字府矛切未员变量,它不需要创建对象就可以已经在内存中存在了,而在创建实例对象的时候扩相很假国务,内存中会为每一个实例对象的超耐屋队每一个非静态成员变量开辟一段内存空间,用来存储这个对象所有的非静态成员变量值。即使两个不同的实例对象是属于同一个class类,但是它们的同名非静态成员变量在内存中占用的空间是不同的,而静态成员变量也就是类变量相同。所有的实例对象都**用一个类变量,内存中只有一处空间是放这个类变量值的。因此,如果一个对象把类变量值改了,另外一个对象再取类变量值就是改过之后的了。