java中变量初始化和使用范围问题

我在main函数所在的类声明了一个变量:“staticStringindexOfTrack="";”,在一个实现接口的public的监听方法中调用一个privatevoi... 我在main函数所在的类声明了一个变量:“static String indexOfTrack = "";”,在一个实现接口的public的监听方法中调用一个private void cmdResponse(),在这个cmdResponse函数里我给这个变量赋了值:“indexOfTrack = inputMessage;”,但是这个变量在这个函数以外还是空字符串,大神们,这该怎么处理? 展开
 我来答
明槐宸739
2016-04-13 · TA获得超过1045个赞
知道大有可为答主
回答量:1507
采纳率:92%
帮助的人:473万
展开全部
对 你就得这么记“所有对变量在使用前都得初始化”
1.尤其是在方法中声明的局部变量,必须得由手动进行显示的初始化
2.而声明在类体中的成员变量,虚拟机会自动帮你初始化 为各种 0 值(数值类型为0 字符则为编码为0的那个 boolean 为false(编码还是0)引用型初始化为null)
比较特殊的一种变量final(这里叫常量了 一旦赋值初始化之后就不能更改 )这种变量想想也知道必须手动赋值初始化了,(虚拟机给你赋值个0有啥用呢?你又不能改它的值),于是再按照上述1、2的原则,1.局部的final型变量还是只要在使用前进行手动初始化即可 2,final成员变量要么你在声明的时候就赋值了,要么你在声明的时候没赋值的话,就必须在所在的类实例化的时候就赋值了(即必须在所有的构造方法中初始化了)
追问
我只是想知道怎么让这个indexOfTrack在cmdResponse方法中赋的值在当前类中可用……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
般若兮若
2016-04-13 · TA获得超过2706个赞
知道小有建树答主
回答量:1246
采纳率:0%
帮助的人:939万
展开全部
static静态变量赋值之后应该是就改变了,你在其他方法中取这个变量的值是空字符串是在你为indexOfTrack赋值之前还是之后?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式