Java中静态变量和实例变量的区别和应用场合问题

我看了一本Java书,按照书上的说法,我的理解是变量前加static是类变量,不加static是对象变量。不知道我的理解对不对?我想请各位用源程序的例子来说明一下这两者的... 我看了一本Java书,按照书上的说法,我的理解是变量前加static是类变量,不加static是对象变量。不知道我的理解对不对?我想请各位用源程序的例子来说明一下这两者的区别,以及什么场合分别用什么变量。 展开
 我来答
Nigel_FB
2009-07-27 · TA获得超过1386个赞
知道小有建树答主
回答量:470
采纳率:0%
帮助的人:398万
展开全部
你理解的对, 静态变量是共享的, 在整个JVM中只存在一个, 而成员变量是每一个实例所独有的.

成员变量就是供实例自己使用的, 不用多说, 用法很固定.

静态变量根据声明的不同, 功能也不同, 一般的静态变量声明是根据本类实例, 向外提供一些信息的, 这样的静态变量通常声明为public, 以便于和外界交互.

而声明为private的用法就很杂了, 最常见的就是类内的一些并发控制, 还有类内的常变量, 还有尤为重要的单例模式, 都用到的是private 的静态变量.

而在static的声明同时, 声明为final就是常量了, 和C中的const差不多, 用于一些标志位, 和固定的显示用的字符串, 等等
bad_pr
推荐于2017-09-17 · TA获得超过470个赞
知道小有建树答主
回答量:403
采纳率:0%
帮助的人:338万
展开全部
我的理解是变量前加static是类变量,不加static是对象变量。不知道我的理解对不对?



当一个对象是这个类所有的实例所共享的时候,用类变量,
如果每个实例的值都可能不同,就用实例变量。

比如说有一个学生类:年龄,姓名是实例变量,因为每个人的年龄,姓名都可能不同;

而生活补贴可以是类变量,每个学生的补贴都是一样的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式