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=nullWink
具体原因有待高手详解~

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