Sample Java Application (standalone program 獨立程式) tsaiwn@csie.nctu.edu.tw ccsun3 testjava > cat -n MyFirstProgram.java 1 // MyfirstProgram.java -- CopyLeft by tsaiwn@csie.nctu.edu.tw 2 // please compare to p6.c in our C/C++ handouts 3 // Java Application 要有一個 main() 的 method 4 // 且這個 main() 的 type 是 void, 屬性須是 public static 5 public class MyFirstProgram { 6 private static void somespace(int k){ 7 if(k<10) System.out.print(" "); 8 else System.out.print(" "); 9 } 10 public static void main(String s[]) 11 { int i,j; 12 java.lang.System.out.print("\n X |"); 13 for(i=1; i <= 9; i++) System.out.print(" "+ i); 14 System.out.println(); 15 for(i=1 ; i <= 10 ; i++) System.out.print("---- "); 16 i=1; 17 while(i<= 9) 18 { 19 System.out.print("\n "+ i+ " |"); 20 for(j=1 ; j <= 9 ; j++){ 21 somespace(i*j); // JDK1.4 has no printf(). 只好用白爛法:-) 22 System.out.print(i*j); 23 } 24 i++; 25 } 26 System.out.println("\n=== ==="); return; 27 } 28 } ccsun3 testjava > /usr/local/jdk/jdk1.2.2/bin/javac MyFirstProgram.java ccsun3 testjava > /usr/local/jdk/jdk1.2.2/bin/java MyFirstProgram (注意不要寫 .class) X | 1 2 3 4 5 6 7 8 9 ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- 1 | 1 2 3 4 5 6 7 8 9 2 | 2 4 6 8 10 12 14 16 18 3 | 3 6 9 12 15 18 21 24 27 4 | 4 8 12 16 20 24 28 32 36 5 | 5 10 15 20 25 30 35 40 45 6 | 6 12 18 24 30 36 42 48 54 7 | 7 14 21 28 35 42 49 56 63 8 | 8 16 24 32 40 48 56 64 72 9 | 9 18 27 36 45 54 63 72 81 === === ccsun3 testjava > * Java 的語法大都跟 C++ 相同, 但 main() 也要長在一個 class 之內(須 public) ** 如何輸出到 standard output?? *** C 語言中可用 printf("...", v1, v2, ...); 或 fprintf(stdout, "...", v1, v2, ...); 輸出資料到 stdout *** C++ 語言有一個叫做 cout 的個體(物件, object), 它是流向螢幕的串流(ostream): cout << v1 << v2 << any_variable_or_constant; /* 簡單吧?*/ *** JAVA 在 java.lang 這package 中有一個 class 叫 System.class 在 System.class 中有一個 static object 叫做 out 這個 out 為一個 PrintStream 會流向螢幕。 阿既然 out 是 PrintStream.class 的 object, 當然可以使用 PrintStream 這 class 的任何 method (member function)。 可用 javap java.io.PrintStream 看有哪些可用或看 Java API Reference 例如 java.lang.System.out.println("Hello World!"); 阿因為java.lang 這 package 內都是很常用的 class, 所以規定不必 import 它, 也可以不用在System前頭寫 java.lang. 阿就直接寫 System.out.println("Hello World!"); 阿就可以了。 *** 舊Java 沒有像 C 的 printf() 的東東, 但有個 java.text.Format.class 及其子孫 可以幫忙做類似COBOL語言中data editing(data formatting)的功能, 以後再介紹。 *** JDK 1.5(即5.0)開始 Java 有類似 C 的printf 可以用 *** JDK 1.5(即5.0)開始 Java 輸入可用java.util.Scanner 讀取 nextInt, ...