Topic: 初始化问题 |
Print this page |
1.初始化问题 | Copy to clipboard |
Posted by: java007 Posted on: 2005-10-12 15:23 public class mm { public static void main(String args[]){ double DegreesC;int DegreesF; System.out.println("Enter a temperature in degrees Fahrenheit:72"); System.out.println("72 degrees Fahrenheit=22.2 degrees Celsius."); DegreesC=5*(DegreesF-32)/9; DegreesF=72; System.out.println("DegreesC=" +DegreesC); } } 运行时总提示"可能未初始化变量DegreesF", 我不是初始化了吗?好奇怪哦. |
2.Re:初始化问题 [Re: java007] | Copy to clipboard |
Posted by: 冷血无情 Posted on: 2005-10-12 15:27 这样就行了 int DegreesF=72; |
3.Re:初始化问题 [Re: java007] | Copy to clipboard |
Posted by: hxz5830 Posted on: 2005-10-14 08:52 变量初始化顺序要求很严,即使在同一个类中,也要先初始化后引用. 例子中先引用了DegreesF,后初始化故有问题 DegreesC=5*(DegreesF-32)/9; DegreesF=72 |
4.Re:初始化问题 [Re: java007] | Copy to clipboard |
Posted by: jerry010 Posted on: 2005-10-15 15:56 这是一个本地变量的初始化问题。 本地化变量并不会自动赋予默认值,需明确初始化。 在DegreesC=5*(DegreesF-32)/9;中调用的DegreesF的初始化在其之后自然报错。 |
5.Re:初始化问题 [Re: java007] | Copy to clipboard |
Posted by: truthawp Posted on: 2005-10-15 19:30 恩,同意楼上的 不过,似乎只对于数值型的是这样(但是也有特例,具体的忘了) 例如,对一个A类生成实例的语句 A a=new A();可以写成 A a; a=new A();我老师把A a;这种也算做一个变量,而这种变量即使是本地的(不知道是不是理解上的差异),也不需要初始化(否则的话,我觉得应该这么写:A a=null 具体原因有待高手详解~ |
6.Re:初始化问题 [Re: java007] | Copy to clipboard |
Posted by: rhvic Posted on: 2005-10-15 23:17 public class mm { public static void main(String args[]){ double DegreesC;int DegreesF; System.out.println("Enter a temperature in degrees Fahrenheit:72"); System.out.println("72 degrees Fahrenheit=22.2 degrees Celsius."); DegreesC=5*(DegreesF-32)/9;这里的DegreeF只是在前面定义了,而并没有初始化,只有静态变量可以不需要初始化,系统自动默认初始化值,所以必须先初始化 DegreesF=72; System.out.println("DegreesC=" +DegreesC); } } |
7.Re:初始化问题 [Re: java007] | Copy to clipboard |
Posted by: chenjianguojt Posted on: 2005-10-19 23:46 DegreesF=72; 应该在DegreesC=5*(DegreesF-32)/9; 之前 |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |