iT邦幫忙

1

【左京淳的JAVA學習筆記】第一章 JAVA基礎

阿姆斯壯的一小步-準備好裝備

  1. 在網路上搜尋、下載並安裝好最新的JDK(JAVA編輯器套裝)

  2. 設定系統path 讓JAVA在任何路徑下都能直接啟動

  • 點選win開始選單->輸入「環境變數」進行搜尋
  • 在環境變數中找到Path變數,將JAVA資資料夾中的bin資料夾新增進Path變數裡面
    例:C:\Program Files\Java\jdk-11.0.1\bin
  1. 確認步驟1和2設定成功
  • 點選win開始選單->輸入「cmd」開啟命令提示字元視窗
  • 輸入javac -version,若畫面顯示版本號碼即設定成功

新手任務導覽-JAVA檔案的執行流程如下

程式碼檔案(source file)->編譯後檔案(class file)->JVM(JAVA虛擬機)執行
※source file的本質是個文件檔,可以用任何文書軟體編輯。只要副檔名指定為.java,就能被JAVA的編譯器識別。
class file記錄了二進位的內容,是給JVM看的檔案,由JVM再翻譯成電腦可以執行的語言。

  • 文法上的錯誤在編譯時就會報錯
  • 其他的錯誤在執行時會報錯
  • 最後程式的邏輯與預想的是否一致,則要通過測試來確認
  • 測試就是比較以下兩者的輸出文件是否一致
    輸入文件->手動編輯->輸出文件(預測值)
    輸入文件->自動執行(跑程式)->輸出文件(實際結果)

蹲馬步-Java程式的基本構造

新建一個記事本檔案,命名為Sample1_1.java
※window環境下預設文件副檔名為txt,無法直接修改為java。
這時候需要開一個新的資料夾把檔案放進去,然後點選「檢視」->「附檔名」並加以修改。

檔案內容如下

  class Sample1_1 {
    public static void main(String[] args) {
      System.out.println("Hello!");
    }
  }
  • 一個java檔裡至少需有一個class(代表一個物件)。物件裡可以存放資料(靜態),也可以設定方法(動作)。
  • class名稱通常與檔名一致。
  • public static void main(String[] args) {}這個方法稱為main方法,是JAVA程式開始執行的入口處。
  • 其中public static void都是固定的修飾詞,後面的String首字大寫也是固定的。
    這句芝麻開門一般的咒語,多打幾次自然就會記起來。

main方法裡面寫了System.out.println("Hello!");
表示調用System模組裡的out物件,並執行println(意指print line)方法
在畫面上顯示出「Hello!」字串
每個方法的結尾須使用「;」作結。

用「javac」指令進行編譯

在檔案上點選右鍵確認檔案所在路徑
例:C:\Users\userXXX\Desktop\java
- 點選win開始選單->輸入「cmd」開啟命令提示字元視窗
- 輸入 cd C:\Users\userXXX\Desktop\java(請輸入自己的檔案路徑) ,移動到檔案所在位置。
- 輸入javac Sample1_1.java進行編譯。※注意大小寫
成功的話資料夾內會出現Sample1_1.class檔案。

用「java」指令執行程式(class檔案)

在命令提示字元視窗輸入java Sample1_1
畫面出現Hello!即表示程式成功執行了。

以上就是最簡單的java程式,依此類推可以把任何邏輯寫到java檔裡並執行。

延伸1-關於class檔的自動命名

寫一個Sample1_2.java,裡面放一個空的class

  class Foo {}

※Foo是範例常用的名稱,並沒有特殊意義。也可以取任何自己喜歡的名稱。
依照之前的步驟編譯Sample1_2.java檔案
編譯後會得到Foo.class檔案,檔名與class名稱相同。

延伸2-一個java檔裡寫多個class

  class Bar {}
  class Sample1_3 {
    public static void main(String[] args) {
      System.out.println("Hello!");
    }
  }

依照之前的步驟編譯Sample1_3.java檔案
編譯後會得到Bar.class和Sample1_3.class兩個檔案。
其中Sample1_3.class裡面有main方法,所以可以執行。
但Bar.class裡面沒有main方法,執行會報錯。
試著執行以下指令
java Sample1_3
java Bar

延伸3-public修飾子

雖然一個java檔內可以放入多個class
但是public class只能有一個,而且這個class的名字必須與java檔名一樣。

延伸4-數字與文字列

在java檔裡面可以用//符號寫註釋

  class Sample1_4 {
    public static void main(String[] args) {
      System.out.println(123.45);         //10進位
      System.out.println(0b11111111);     //0b開頭為2進位表示法
      System.out.println(0xff);           //0x開頭為16進位表示法
      System.out.println('A');            //''單一字母或Unicode
      System.out.println('\u3012');       //''單一字母或Unicode
      System.out.println("Hello");        //""文字列
    }
  }

依照之前的步驟編譯Sample1_4.java檔案
由於這次java檔案裡有中文字母,如果出現類似以下報錯,表示此文件的編碼和JAVA編譯程式時採用的編碼(MS950)不一致。
unmappable character (0x97) for encoding x-windows-950

發生錯誤時可直接把錯誤訊息貼到google搜尋解答
假設文件的編碼採用utf-8,可以用以下的指令解決。
javac -encoding utf-8 Sample1_4.java

編譯成功後執行java Sample1_4,可以發現在顯示結果時,各種數字都被轉換為10進位,Unicode字碼也被轉換為英文字母表示。

延伸5-變數的初期化

建立Sample1_5.java文件

  class Sample1_5 {
    public static void main(String[] args) {
      int num1 = 10;
      long num2 = 30;
      long num3 = 10000000000;
      float num4 = 10.0;
    }
  }

在java裡面,整數預設被當成int類型的資料,小數被預設當成double型資料。
因此,num3會報錯,因為10000000000超過了int類型所能保存的數值
num也會報錯,因為10.0先被存成double(64 Bit)資料,在放入num4變數(float, 32 Bit)時放不進去。

所以在初始化long及float類型的變數時,需要加註符號讓JAVA理解。正確寫法如下:

  class Sample1_5 {
    public static void main(String[] args) {
      int num1 = 10;
      long num2 = 30;
      long num3 = 10000000000L;
      float num4 = 10.0F;
    }
  }

延伸6-變數的可用範圍(Scope)

在方法內宣告的變數,只在該方法內可以被使用。

  class Sample1_6 {
    public static void main(String[] args) {
      int x = 10;
      x = 20;
    }
      x = 30;
  }

x變數由於是在main方法裡被宣告的,在此方法範圍外不能使用,因此x=30這行會報錯

以上 是關於JAVA的學習筆記,一共有八章,這是第一章。
整理筆記一方面是為自己釐清思緒,同時也留給需要的人參考用。

參考教材: JAVAプログラマSilver SE8 - 山本 道子


尚未有邦友留言

立即登入留言