qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          編譯時Java最常見的錯誤

            學習一種新的編程語言總是一種挑戰,因為簡單的失誤就可以產生錯誤,對于門外漢來說都是神秘和充滿困惑的。如果你不是足夠幸運有一個有經驗的程序員在旁邊看著你并提供指導,排除你代碼的故障將是非常令人沮喪的。

             如果你正學習Java語言,你在編譯和執行代碼的時候遇到問題,一般來說問題將分為2類:無論你遇到的是編譯時錯誤,這說明你的程序編譯失敗,還是你遇 到運行時錯誤,這是指錯誤發生在你成功地編譯了程序但不能運行并且沒有產生錯誤。當然,在你遇到一個運行時錯誤之前,你的代碼必須首先能夠編譯,所以在這 里我們將研究最常見的開發者可能遇到的編譯時錯誤的原因。

            最常見的編譯時錯誤

            我們將使用下面的代碼作為一個Java示例類作為討論:

          public class Game {
              public static void main(String args[]) {
              System.out.println(“If I choose Paper,”);
              System.out.println(“And you choose Scissors,”);
              System.out.println(“Then I win, and you lose!”);
              }
              }

             Java文件錯誤的命名方式--Java文件的名稱必須和代碼中相關的公共類完全匹配。因此,如果你的代碼包含一個公共類“Game”,Java文件必 須命名為“Game.Java”,而不能命名為“game.Java”,或者是“GAME.Java”,再或者是“MyGame.Java”.該文件的名 稱和公共類的名稱在拼寫和大小寫上都必須完全匹配。

            代碼錯誤的大小寫--Java對大小寫敏感,因此“public”與 “Public”或“puBliC”都是不相同的。Java新手往往利用首字母大寫,反之亦然,由于大小寫錯誤導致他們編寫的代碼編譯失敗。為了進一步復 雜化這個問題,編譯時錯誤信息由于大寫問題往往是隱蔽和沒有幫助的。例如,如果你把主方法中的聲明“public static and void”第一個字母大寫,你會得到以下錯誤消息,說需要一個分號,這真的不是問題的根本:

          C:\_jdk1.7\bin>Javac Game.Java
              Game.Java:3: error: ';' expected
              Public Static Void main (String args[]) {
              1 error

             錯誤匹配的括號--你可以看到你的代碼中的每一個開著的括弧,它可能是一個方括號,大括弧或圓括號,你需要一個與之匹配的關閉的括弧。有時,一個程序員 會忘記關閉方法的括弧,或者他們會記得關閉一個方法的括弧,但是忘記關閉類的括弧。不管它是如何發生的,如果括號不匹配,你將會一直得到一個編譯時錯誤。

            例如,一個Java類的最后一個大括弧不關閉,試圖編譯代碼將產生下列編譯時錯誤:

            C:\_jdk1.7\bin>Javac Game.Java

            Game.Java:11: error: reached end of file while parsing

            }

            1 error

             就我個人而言,每當我創建一個新的方法或類時,在敲入開始的括弧之后,我總是敲一些回車,然后添加一個結束的封閉括號。我只有在括號匹配的情況下我才會 開始類主體或方法的代碼編碼。這樣,你的括號會總是匹配狀態,你樣就可以在編寫類或者方法代碼時,不用擔心將來的某個時刻需要關閉括號。

            漏掉分號--人們越來越熟悉的Java另一個常見編碼錯誤是漏掉需要的分號。作為一項規則,每一個語句必須以分號結束。不幸的是,這個規則有時可能會像它的作用一樣另人費解,尤其是當你有一個很難弄清楚它到底是不是一個語句的時候。

            例如,在一個方法的主體里面,所有的“system.out.print”調用都以分號結束。如果我們在一個方法體中忘記給“system.out”加上分號,我們將會得到一個編譯時錯誤消息,就像下面一樣:

          C:\_jdk1.7\bin>Javac Game.Java
              Game.Java:7: error: ';' expected
              System.out.println(“Then I win and you lose!”)
              1 error

             容易混淆的部分是由于在Java中并不是每一行你寫的代碼就是一個語句。例如,類聲明是不被視為一個語句,所以它不跟分號。同樣,一個方法聲明是不被視 為一個語句的,所以它也不跟分號。要想容易識別哪個是一個語句哪個不是一個語句需要一定的練習,這也需要一定的時間,但請放心,如果你確實有一個語句,它 就必須跟著一個分號,否則編譯器會開始報錯。

            隨著時間的推移,任何編程語言的細微差別最終都會成為司空見慣的事,而Java眾所周知的 請求和市場上其他編程語言沒什么區別。如果你是Java新手,記住這四個小提示,如果你碰到一個編譯時錯誤,看看是不是Java文件的命名方式產生的問 題,代碼中單詞和字母的大小寫情況,不匹配的括號和或漏掉分號。保持這四個問題點在你的腦海里將幫助你解決Java代碼故障排除問題,并希望減輕一些學習 Java程序語言的挫折。

          posted on 2012-09-14 09:43 順其自然EVO 閱讀(689) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2012年9月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 阜平县| 临城县| 乐安县| 韩城市| 黎川县| 阿荣旗| 元江| 罗平县| 平遥县| 临海市| 驻马店市| 房产| 方正县| 海城市| 凌海市| 泸溪县| 桐柏县| 商河县| 九江县| 平湖市| 阿城市| 台东县| 红原县| 芜湖县| 大厂| 高安市| 邳州市| 翼城县| 广河县| 炉霍县| 北川| 嘉禾县| 墨江| 莱西市| 安塞县| 拜城县| 新乐市| 东莞市| 香格里拉县| 龙口市| 德兴市|