变量不初始化,可以输出吗? 变量不初始化,可以使用(如输出变量的相应值)吗?我一直以为是不可以的。如下:String s;System.out.println(s);//报错。但是下面这个例子没有初始化,怎么就可以呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 此回复为自动发出,仅用于显示而已,并无任何其他特殊作用楼主【lord_is_layuping】截止到2008-06-25 21:54:08的历史汇总数据(不包括此帖):发帖数:117 发帖分:2251 结贴数:101 结贴分:2231 未结数:16 未结分:20 结贴率:86.32 % 结分率:99.11 % 楼主加油 全局变量会自动赋予初值对象为null int 为0等,局部变量的话就要初始化才能使用 就是这里,“没有赋值,int型缺省为0,所以就打了Target=> 0出来”class Depend{ int i = 10; public Depend() { print(); i = 20; } void print() { System.out.println("Depend=> " + i); }}public class Qdb extends Depend{ int i = 30; public Qdb() { print(); super.print(); i = 40; } void print() { System.out.println("Target=> " + i); } public static void main(String[] args) { new Qdb(); }}执行new Qdb();时,首先初始化超类的字段i(=10),接着调用超类的构造方法 public Depend() { print(); i = 20; }但是这个print()是调用Qdb类的,因为Qdb重写了这个方法,而此时Qdb中的i声明了但还没有赋值,int型缺省为0,所以就打了Target=> 0出来,然后给超类的i重新赋值20接着Qdb给i赋值30,然后再执行Qdb的构造方法 public Qdb() { print(); super.print(); i = 40; }这个时候print()打印出Target=> 30就很正常了,super.print()就直接定位到超类里去了,因为超类的i已经被重新赋值20了,所以打印Depend=> 20 实例变量输出默认值String型的输出null局部变量必须初始化 呵呵.最近看了那个深入JVM之后才知道,首先是分配空间,这一步不算是初始化的,但也给了一个默认值的. 字符编码问题 页面每10秒读取一次Action,多个用户执行这样的操作就报NullPointerException JAVA中打印昨天的当前时刻 新建对话框时,出现异常,请大家帮助分析一下。(有源代码) 用JDK编译时出错,请高手帮忙 急啊,一个运行错误!!解决不了 一个关于弹出窗口的问题``` 寻找兼职程序员 求助JAVA安全性的文档 使用连接池时连接数据库的错误,快来帮帮忙! Java理论的的例子 关于加载第三方JAR的问题
楼主【lord_is_layuping】截止到2008-06-25 21:54:08的历史汇总数据(不包括此帖):
发帖数:117 发帖分:2251
结贴数:101 结贴分:2231
未结数:16 未结分:20
结贴率:86.32 % 结分率:99.11 %
楼主加油
对象为null int 为0等,
局部变量的话就要初始化才能使用
class Depend
{
int i = 10;
public Depend()
{
print();
i = 20;
} void print()
{
System.out.println("Depend=> " + i);
}
}
public class Qdb extends Depend
{
int i = 30;
public Qdb()
{
print();
super.print();
i = 40;
} void print()
{
System.out.println("Target=> " + i);
} public static void main(String[] args)
{
new Qdb();
}
}执行new Qdb();时,首先初始化超类的字段i(=10),接着调用超类的构造方法
public Depend()
{
print();
i = 20;
}
但是这个print()是调用Qdb类的,因为Qdb重写了这个方法,而此时Qdb中的i声明了但还没有赋值,int型缺省为0,所以就打了Target=> 0出来,然后给超类的i重新赋值20接着Qdb给i赋值30,然后再执行Qdb的构造方法
public Qdb()
{
print();
super.print();
i = 40;
}
这个时候print()打印出Target=> 30就很正常了,super.print()就直接定位到超类里去了,因为超类的i已经被重新赋值20了,所以打印Depend=> 20
String型的输出null
局部变量必须初始化