黑马程序员技术交流社区
标题:
对象声明赋值问题
[打印本页]
作者:
刘文飞
时间:
2012-10-19 11:54
标题:
对象声明赋值问题
本帖最后由 刘文飞 于 2012-10-19 14:28 编辑
代码:
——————————————————————————————————————————————
import java.util.*;
import java.text.*;
public class SimpleDateFormatDemo01{
public static void main(String args[]){
String strDate = "2012:10-19 10:59:38:839";
String pat1 = "yyyy:MM-dd HH:mm:ss:SSS";
String pat2 = "yyyy年MM月dd日 HH时mm分ss秒SSS毫秒";
SimpleDateFormat sdf1 = new SimpleDateFormat(pat1);
SimpleDateFormat sdf2 = new SimpleDateFormat(pat2);
//Date d = null;
try{
Date d = sdf1.parse(strDate);//
声明的时候直接赋值怎么不行,而要先在前面Date d = null
}catch(Exception e){
e.printStackTrace();
}
System.out.println(sdf2.format(d));
}
}
————————————————————————————————————————————
错误提示:
————————————————————————————————————————————————————————
I:\code\java>javac SimpleDateFormatDemo01.java
SimpleDateFormatDemo01.java:16: 找不到符号
符号: 变量 d
位置: 类 SimpleDateFormatDemo01
System.out.println(sdf2.format(d));
^
1 错误
作者:
徐梦侠
时间:
2012-10-19 12:05
因为你在后面还调用了变量d的,不能把它定义在try代码块中
import java.util.*;
import java.text.*;
public class SimpleDateFormatDemo01{
public static void main(String args[]){
String strDate = "2012:10-19 10:59:38:839";
String pat1 = "yyyy:MM-dd HH:mm:ss:SSS";
String pat2 = "yyyy年MM月dd日 HH时mm分ss秒SSS毫秒";
SimpleDateFormat sdf1 = new SimpleDateFormat(pat1);
SimpleDateFormat sdf2 = new SimpleDateFormat(pat2);
//Date d = null;
try{
Date d = sdf1.parse(strDate);
//如果在此定义变量,那么后面出来try代码块就不能用了
声明
}catch(Exception e){
e.printStackTrace();
}
System.out.println(sdf2.format(d));
//d是局部变量
}
}
作者:
qhasilver
时间:
2012-10-19 12:06
有没有听说过一句话——局部变量,出了大括号就没人认识它。
你把Date d = sdf1.parse(strDate);写在了try{}里面,而在{}外面调用System.out.println(sdf2.format(d));
是不对的。
我改了一下你的代码
import java.util.*;
import java.text.*;
public class SimpleDateFormatDemo01{
public static void main(String args[]){
String strDate = "2012:10-19 10:59:38:839";
String pat1 = "yyyy:MM-dd HH:mm:ss:SSS";
String pat2 = "yyyy年MM月dd日 HH时mm分ss秒SSS毫秒";
SimpleDateFormat sdf1 = new SimpleDateFormat(pat1);
SimpleDateFormat sdf2 = new SimpleDateFormat(pat2);
//Date d = null;
try{
Date d = sdf1.parse(strDate);//声明的时候直接赋值怎么不行,而要先在前面Date d = null
System.out.println(sdf2.format(d));
}catch(Exception e){
e.printStackTrace();
}
}
}
复制代码
作者:
刘伟平
时间:
2012-10-19 12:16
定义变量需要注意变量的作用区域,局部变量是只能作用在它所在的代码块和其内部代码块的,就像你在try代码块中定义了 d 变量,那么在catch和try上层代码块就无法访问了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2