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