搜索
首页 电脑/网络 程序设计 JAVA相关

java 变量初始化的问题

  import java。io。*;public class TestPrintStream1 { public static void main(String[] args) { FileOutputStream fos ; try { fos = new FileOutputStream("C:/PS1。
  txt"); //A } catch (IOException e) { e。printStackTrace(); } PrintStream ps = new PrintStream(fos); //B if(ps != null) { System。
  setOut(ps); } System。out。
  println("haha"); }}无法通过编译,说B句在使用fos时未对fos进行初始化,可A句已经初始化了呀?为什么说fos变量没有初始化?(我知道只要在开头令fos=null;就可以了,但是就是想不通,A句也初始化了,为什么B句就不能通过编译)。

全部回答

2008-03-15

0 0
  PrintStream ps = new PrintStream(fos); //B if(ps != null) { System。setOut(ps); } 把以上语句全部移到try的语句块内,也就是移到try语句后面的花括号内就可以了。
   因为你实例化fos的时候是在try语句块内局部实例化的,try语句块外部的fos依然是没有实例化的变量。 应该就是这样的 不过我自己没有试,你自己看看吧。

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

电脑/网络
JAVA相关
硬件
电脑装机
程序设计
互联网
操作系统/系统故障
笔记本电脑
反病毒
百度
软件
程序设计
JAVA相关
VB
数据库
C/C++
汇编语言
VC++
C#/.NET
其他编程语言
JAVA相关
JAVA相关
举报
举报原因(必选):
取消确定举报