JAVA & FLEX

一个分享java和flex开发经验的空间

   :: 首页 ::  :: 联系 ::  :: 管理 ::
  26 随笔 :: 2 文章 :: 44 评论 :: 0 Trackbacks
    在书写代码的时候,一定要规范自己的代码,如果不规范代码,那么有的时候,可能会给你带来不大不小的麻烦,下面有一个小小的例子

public class TestPrintStream1 {
  
public static void main(String[] args) {
    Class c 
= TestPrintStream1.class;
    
try {
      Object o 
= c.newInstance();
      
if (o instanceof TestPrintStream1)
        TestPrintStream1 tt 
= (TestPrintStream1) o;// 这里为什么会报错呢,说tt 和 TestPrintStream1不能解析
    }
 catch (InstantiationException e) {
      e.printStackTrace();
    }
 catch (IllegalAccessException e) {
      
// TODO Auto-generated catch block
      e.printStackTrace();
    }

  }

}

这个例子写完后,你会发现,编译器并不让你通过,为什么呢,语法没有问题啊,奇怪吧
可是在仔细看看,你会发现对于if()这个语句,我们是这样来定义的
if ( a.equals(b)) {
  System.out.println(
"haha");
}

是不是在例子的代码后面没有加入{}
这个涉及到了一个问题:我们知道,在if后面如果只有一个语句,那么我们会习惯的忽略{},可是在JAVA解析的时候
TestPrintStream1 tt = (TestPrintStream1) o;这个语句会被解析成
 TestPrintStream1 tt; tt = new TestPrintStream1 (); 这样,在if{}这个模块中,只执行TestPrintStream1 tt;这个语句而不会执行
tt = new TestPrintStream1 (); ,解析tt = new TestPrintStream1 (); 的时候,就会找不到tt的定义了,因为TestPrintStream1 tt;的作用域已经结束了
所以,在平时,一定要养成良好的代码书写规范,不仅仅会规约我们的书写习惯,还会减少一些看起来很奇怪的问题
posted on 2008-09-01 17:45 程序人生-天津 阅读(246) 评论(0)  编辑  收藏 所属分类: JAVA基础

只有注册用户登录后才能发表评论。


网站导航: