ch2 Java 導論

2-1 傳統方式與Java程式的差異

native vs bytecode (.class)

2-2 Java 開發工具

2-3 Java 檔案的編譯與執行

使用 editor(ide) - javac - java

2-4 Java 程式內容簡介

Java程式內容

  1. 識別字(Identifier)
  2. 值(Literal) 123 "Hello"
  3. 符號(Symbol) + - * /
  4. 關鍵字(Keyword) for if
  5. 註解(Comment) // /* */

參考程式 JavaIntro.java

/*
JavaIntro.java範例
主要介紹Java程式基本觀念。
*/
public class E01_JavaIntro {
	//main方法是程式進入點
	public static void main(String[] args){	
		System.out.println("聖母峰有多高? ");
		System.out.print(8848);
		System.out.print("公尺。");
	}
}

補充顯示資料

printf format

2-5 Java 基本類型(Primitive Type)

  1. 整數類型(Integer)
  2. 參考程式 IntegralType.java

  3. 浮點數(Float Point)
  4. 參考程式 FloatPointType.java

  5. 布林(Boolean) true false
  6. 字元(Character) unicode
  7. 參考程式 CharStringType.java

public class E02_IntType {
	public static void main(String[] args){
		byte num1 = 1;
		short num2 = 2;
		int num3 = 3; 
		long num4 = 4; 		
		int num5 = 0x8d; //16進位整數
		int num6 = 075; //8進位整數 
		long bigint = 2345678912345L; // 整數Literal預設為 int 
		
		System.out.println(23);
		System.out.printf("num1=%d\n", num1);
		System.out.printf("num2=%d\n", num2);
		System.out.printf("num3=%d\n", num3);
		System.out.printf("num4=%d\n", num4);
		System.out.printf("num5=%d\n", num5);
		System.out.printf("num6=%d\n", num6);
		System.out.printf("bigint=%d\n", bigint);
		
		int 年級 = 1;
		System.out.printf("年級=%d\n",年級);		
	}
}
public class E03_FloatType {
	public static void main(String[] args){
		float num = 2.0f; //f代表是float類型,預設為 double
		int i = 123456789;
		float f = 123456789; //float變數可以承接int值
		double d = 123456789; // 浮點數Literal預設為 double
		System.out.println(4.0);
		System.out.printf("num=%f\n", num);
		System.out.printf("i=%d\n", i);
		System.out.printf("f=%f\n", f);
		System.out.printf("d=%f\n", d);
	}
}
public class E04_CharStrType {
	public static void main(String[] args){
		char ch1 = 'J';
		char ch2 = '考';
		int i1 = ch1; 
		int i2 = ch2; 
		char ch3 = '\u8B49'; //8B49是16進位,相當於10進位的35657
		String s1 = "SCJP 6";
		String s2 = "\"SCJP 6\""; //讓雙引號變成純文字
		System.out.printf("ch1=%c\n", ch1);
		System.out.printf("ch2=%c\n", ch2);
		System.out.printf("i1=%d\n", i1);
		System.out.printf("i2=%d\n", i2);
		System.out.printf("ch13=%c\n", ch3);
		System.out.printf("s1=%s\n", s1);
		System.out.printf("s2=%s\n", s2);
	}
}

Java 的跳脫字元(Escape Character)

2-6 基本類型轉換

參考程式 Casting.java

public class E05_Casting {
	public static void main(String[] args){
		int i = 1;
		double d = 11.1;
		double sum1 = i + d;
		int sum2 = (int)(i + d);
		System.out.printf("sum1=%f\n", sum1);
		System.out.printf("sum2=%d\n", sum2);
	}

}

2-7 從鍵盤讀入資料

使用 Scanner

import java.util.Scanner;

public class E06_Scanner {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		// 整數(Integer)
		System.out.print("請輸入整數(Integer):");
		int num = sc.nextInt();
		System.out.printf("num=%d\n", num);

		// 浮點數(Float)
		System.out.print("請輸入浮點數(Float):");
		double d = sc.nextDouble();
		System.out.printf("d=%f\n", d);
		
		// 移除上一個Float的 Enter換行符號
		String lf = sc.nextLine();
		
		//名字(String) nextLine
		System.out.print("請輸入你的名字(String):");
		String name = sc.nextLine();
		System.out.printf("name=%s\n", name);
		
		//名字FirstName(String) next
		System.out.print("請輸入你的名字(String):");
		String fname = sc.next();
		System.out.printf("fname=%s\n", fname);
	}
}

Scanner 的方法 Method