Java 之 第一個Java程式
一、開發步驟
1、將 Java 程式碼編寫到副檔名為 .java 的檔案中。
2、通過 javac 命令對該 java 檔案進行編譯 。
3、通過 java 命令對生成的 class 檔案進行執行。
二、編寫
選擇最簡單的編輯器:記事本。
敲入程式碼 class Test{ }將檔案儲存成Test.java,這個檔案是存放java程式碼的檔案,稱為原始檔。
檔案的字尾名顯示為 .java,所以要把檔案的副檔名顯示出來。
三、編譯
有了java原始檔,通過編譯器將其編譯成JVM可以識別的位元組碼檔案。
在該原始檔目錄下,通過javac
如果程式沒有錯誤,沒有任何提示,但在當前目錄下會出現一個Test.class檔案,該檔案稱為位元組碼檔案,也是可以執行的java的程式。
四、執行
有了可執行的java程式(Test.class位元組碼檔案)
通過執行工具java.exe對位元組碼檔案進行執行。
出現提示:缺少一個名稱為main的方法。
因為一個程式的執行需要一個起始點或者入口,所以在Test類中的加入public static voidmain(String[] args){ }
對修改後的Test.java原始檔需要重新編譯,生成新的class檔案後,再進行執行。
發現沒有編譯失敗,但也沒有任何效果,因為並沒有告訴JVM要幫我們做什麼事情,也就是沒有可以具體執行的語句。
想要和JVM來個互動,只要在main方法中加入一句System.out.println(“Hello World");因為程序進行改動,所以再重新編譯,執行即可。
五、第一個程式
public class Test{
public static void main(String[] args) {
System.out.println(“Hello World!”);
}
}
六、常見問題及解決方法
1、Question
原始檔名不存在或者寫錯
當前路徑錯誤
字尾名隱藏問題
2、Question
類檔名寫錯,尤其檔名與類名不一致時,要小心
類檔案不在當前路徑下,或者不在classpath指定路徑下
3、Question
宣告為public的類應與檔名一致,否知編譯失敗
4、Question
編譯失敗,注意錯誤出現的行數,再到原始碼中指定位置改錯
七、總結與擴充套件
1、每一個 Java 檔案都是一個 Java類,一個類的組成主要由下面幾部分組成:
關鍵字 class
類名:Test,檔名必須和主類的名字是一致的,注意大小寫。
內容:{}
主函式:main函式,主函式是一個程式的入口函式,程式執行就是執行主函式,主函式執行完了,程式也就執行完了。JVM在執行的時候,都是從 main 方法開始執行的。(可以沒有主函式一個類中)
一個原始檔中可以定義多個類,編譯之後都會生成一個 .class 檔案,但是隻能定義一個公開類,且公開類的類名和檔名完全一致,公開類用public修飾。
Java 程式的基本組成單元是類,類中又包括屬性與方法兩部分,每一個應用程式都必須包含一個main() 方法,含有 main() 方法的類稱為主類。
2、編譯
編譯:編寫好的 Java 檔案 JVM 看不懂,也就不能執行,需要將寫好的 Java 原始檔,編譯成 JVM可以看懂的 位元組碼檔案。
在 DOS 命令列中,進入 Java 原始檔的目錄,使用 javac 命令進行編譯。(原始檔名不區分大小寫,但是建議注意大小寫)
命令:
javac Java原始檔名.java
編譯成功後,命令列沒有任何提示,在原始檔的目錄中就會有一個和 原始檔同名的 .class 檔案,這個檔案就是編譯後的檔案,是Java的可執行檔案,稱為位元組碼檔案。
3、執行程式
在 DOS 命令列中,進入 java 原始檔的目錄,使用 java 命令進行執行。(位元組碼檔名(類名),嚴格區分大小寫。)
命令:
java 類名(類名與原始檔不一致,非公開類)
java 原始檔名(類名與原始檔名一致,公開類)
執行的時候切記不要給檔案新增字尾名
Tips: 編譯和執行
編譯:是指將編寫的 java 原始檔翻譯成 JVM 認知的 class 檔案,在這個過程中,javac 編譯器會檢查我們所寫的程式時候錯誤,有錯誤就會提示出來,如果沒有錯誤就會編譯成功。
執行:是指將 class 檔案交給 JVM 去執行,此時 JVM就會執行我們寫的程式。
4、包
(1)包的作用
① 避免類的重名問題
有了包後,類的名稱就比較長了,類的全名稱就變成了: 包.類名
java.util.Scanner :Scanner類的全名稱
java.lang.String:String類的全名稱
java.lang.System:System類的全名稱
java.lang.Math:Math類的全名稱
② 分類組織管理眾多的類
java.io:和IO(輸入輸出)有關
java.util:和各種常用工具類有關
java.lang:核心系統類
java.net:和網路程式設計有關
java.sql:和資料庫程式設計有關
③ 用於訪問許可權控制
如果某個類或某個方法的許可權修飾符省略,那麼就僅限於本包使用。
(2)如何宣告包
語法格式:
package 包名;
注意:
① 一個 .java 原始檔只能有一句
② 必須在原始檔的程式碼首行
③package 關鍵字:類似於資料夾,用於管理位元組碼檔案,必須寫在原始檔的第一行。並且可以有多層包。(0~1個包)
包名的命名規範:
① 所有單詞都小寫,每個單詞之間用 . 分割
② 習慣上用公司的域名倒置 + 模組名
(3)如何編譯帶包的類
編譯帶包的類語法:
javac -d . 原始檔名.java (自動生成目錄結構)
(4)如何執行帶包的類
執行帶包的類語法:
java 包名.類名(全限定名)
(5)如何使用其他包的類
前提:被使用的類或成員的許可權修飾符的允許跨包使用
語法:
使用全名稱:包.類名
使用import語句 + 簡名稱
說明:
①import 語句是寫在 package 語句與 class 宣告之間的
② 導包語句可以很多句,匯入不同包的類
③ java.lang 包中的類可以不適用 import 語句,直接使用簡名稱
④ 可以同時匯入一個包中的很多類,如 import 包.*;
⑤ 如果出現了不同的包,但是類名相同
例如: java.util.Date 與 java.sql.Date;
此時只能一個選擇使用全名稱,一個使用簡名稱,不能同時使用簡名稱
import 關鍵字:當一個類中需要引用另外一個類的方法,需要引用對應的包。(0~n個包)
注意:如果有多個包結構是相同的,用 * 代替該包結構下的所有類。