Java 快速導覽 - System 類別

System 類別 (class) 提供一些跟系統有關的屬性 (field) 與方法 (method) , System 被宣告 (declare) 成 final ,因此不能被初始化為物件 (object) ,使用屬性或方法都得直接透過類別名稱 System 。



有三個屬性,分別是
屬性描述
static PrintStream err標準錯誤串流
static InputStream in標準輸入串流
static PrintStream out標準輸出串流


Java 程式的執行過程中,所有錯誤的資訊都會記錄到標準輸出串流,同樣的,所有輸入都會記錄到標準輸入串流,輸出會記錄到標準輸出串流。其中 err 與 in 不常直接被利用,而 out 為 PrintStream 型態 (type) 的物件,有三個常用的多載 (overloading) 方法,如下
方法描述
void print(boolean b)
void print(char c)
void print(char[] s)
void print(double d)
void print(float f)
void print(int i)
void print(long l)
void print(Object obj)
void print(String s)
印出參數,不包括新行符號
PrintStream printf(Locale l, String format, Object... args)
PrintStream printf(String format, Object... args)
列印格式化字串
void println()
void println(boolean x)
void println(char x)
void println(char[] x)
void println(double x)
void println(float x)
void println(int x)
void println(long x)
void println(Object x)
void println(String x)
印出參數,包括新行符號


其他常用方法如下
方法描述
static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)拷貝陣列
static void exit(int status)結束程式執行
static int identityHashCode(Object x)取得物件的雜湊碼


以下例子簡單示範
class SystemDemo {
    public static void main(String[] args) {
        String s1 = "";
        String s2 = "12345";
        String s3 = "hello";
        String s4 = "";
        String s5 = "12345";
        String s6 = "hello";
        
        int a1 = System.identityHashCode(s1);
        int a2 = System.identityHashCode(s2);
        int a3 = System.identityHashCode(s3);
        int a4 = System.identityHashCode(s4);
        int a5 = System.identityHashCode(s5);
        int a6 = System.identityHashCode(s6);
       
        if (a1 == a4) {
            System.out.print("=D");
        }
        
        if (a1 == a6) {
            System.out.print("=D");
        }
        
        if (a2 == a3) {
            System.out.println();
            System.exit(1);
        }
        
        if (a3 == a6) {
            System.out.print("=D");
        }
        
        if (a4 == a5) {
            System.out.print("=D");
        }

        if (a2 == a5) {
            System.out.println();
            System.exit(1);
        }
        
        if (a4 == a1) {
            System.out.print("=D");
        }
        
        if (a6 == a3) {
            System.out.print("=D");
        }

    }
}

/* 《程式語言教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:SystemDemo.java
    功能:示範物件導向的基本觀念 
    作者:張凱慶
    時間:西元 2010 年 10 月 */


編譯後執行,結果如下







2 則留言:

Unknown 提到...

站長你好
我想要請問一下你用的編譯程式是啥
因為我是直接用JCreator這個程式去run
你那個跑出來感覺比較好看

我在學校學了java一年了
但是還是不太懂到底要如何撰寫會比較好
因為學校只有教到迴圈陣列這些比較基礎的語法
後面也只有教到執行緒、介面、繼承
但是東西一多我程式上的排列就會整個搞亂

不知道站長可不可以讓我多多請教您問題
因為我現在學java真的不知道從何學起
就東學一塊西學一塊
無法撰寫出一隻完整的程式
更不用說那些圖形介面了

Kaiching Chang 提到...

請改在討論區發問唷 ^_^