基础题啊~~~~

来源:百度知道 编辑:UC知道 时间:2024/06/15 11:06:59
public class XmlParseDemo {

XmlParseDemo(){
}
String par2;
public void A(){
System.out.println(par2);
}

public static void main(String[] arg){
String par1;
System.out.println(par1);
XmlParseDemo x=new XmlParseDemo();
x.A();
}
}
我在一个类里声明了一个没赋值的变量par2,在方法里输出的是NULL,为什么在方法里声明一个没赋值的变量,输出的时候就会报错??

类一级的变量,系统会自动给默认值,比如String就是null

而方法里面的局部变量,是没有默认值的,连null都没有。 要使用必须先赋值。

那你不会赋值啊
String par2="";

java 语言使用没有初值的局部变量会报错 par1就是这样

而类里面
定义了String par2;

这个应该是默认构造函数
XmlParseDemo()
{
}

XmlParseDemo x=new XmlParseDemo();
默认创造一个XmlParseDemo类型的对象XmlParseDemo 存在x中
这个过程 创造了XmlParseDemo
在对象的创建过程中保证了对象的变量 par2完成了初始化 值为null

---------------------------

俺也是初学 应该是这样
你看看书中有关于 java引用类型 和 类的构造方法 部分

初始化为默认的方法不适合“局部”变量(即非某个类的字段),因此,如果在方法里定义中有:int x之类的定义,那么变量x得到的可能是任意值(与c和c++中一样),而不会被初始化,所以如果忘记了,java会在编译的时候返回一个错误,告诉你此变量没有出示化!

这也正是java优于c++的地方(大多数c++编译器会给出警告,而java视为错误)