第1个回答 2014-08-22
你的这种写法是js写法,js对象定义时也会赋予初始值。
但是java不一样,java必须保证在“所有的分支逻辑”中对象一定要设上值,不然得初始化一个值。所以推荐的写法是 FileInputStream fin = null;
另外,两个建议,1 用 InputStream fin = null; 代替 FileInputStream fin = null;
2 “流” stream 的操作加上 finally 块, close掉stream。
第2个回答 2014-08-22
声明成员变量可以不给初始值,但声明局部变量时一定要赋初始值的
例如:变量类型 变量名 = 初始化的值 比如 String a= “”;
成员变量: private String name;
第3个回答 2014-08-22
你好,这是构造代码块,它优先于构造函数执行,给所有要创建对象进行初始化的。
构造函数是给指定的对象初始化的。
如果满意,请采纳,谢谢。
请采纳。
第4个回答 2014-08-22
因为fin = new FileInputStream("1.txt");这个可能抛出异常,文件不一定能找到
第5个回答 2014-08-22
因为fin = new FileInputStream("1.txt");是有可能抛出异常的,如果抛出异常,就会立刻执行catch中的代码,则fin就没有被初始化