新手遇到java的一个小问题,希望大家可以帮帮!
class E
{
int x; //代码1
long y = x; //代码2
public void f(int n)
{
int m; //代码3
int t = n + m; // 代码4
}
}
题目问上面程序哪个代码错误。我认为是代码2和代码3,因为代码2中long型需要有L后缀,所以应该改为
long y = xL;代码3中,在局部变量必须初始化,所以应该改为m = 0之类,但是答案说是代码4错,怎么回事。
新学习java,已经翻书看之前的定义,实在没办法了就发个帖问问,希望大家帮帮。
------解决方案--------------------代码4错是因为你使用了没有初始化的局部变量,如果局部变量不使用可以不初始化,使用就必须初始化,但变量声明之后不使用就是去意义了。不管怎么样,定义变量初始化是一个好习惯,
------解决方案--------------------m没有初始化就在那里使用了,m只是一个对象的引用,而这里没有让它指向一个实例对象(如int m=3),所以报错了。
------解决方案--------------------使用long数据类型后面不加上L JAVA也是可以的,全局变量可以不用初始化,但是局部变量必须要要
------解决方案--------------------
就是这样
------解决方案--------------------没有给m 初始化,n没有接受任务数值
------解决方案--------------------
怎么会有这种想法???
------解决方案--------------------局部变量初始化