搜尋此網誌

2013年9月26日 星期四

【Java】class method VS. instance method


     
  1. 類別方法(class method or static method):這種方法以 static 宣告。呼叫的方式是 C.m(...),其中 C 是類別名稱,m 是方法名稱,...則是0至多個傳入的參數。在宣告時,會配置記憶體空間
  2. 實例方法(instance method or non-static method):這種方法不以 static 宣告,隸屬於一個類別所產生的實例。呼叫的方式是 o.m(...),其中 o 是這個類別或其子類別的實例,而 m 是其方法名稱,...則是0至多個傳入的參數。  在宣告時,不會配置記憶體空間

class A {
    static String c1() {
        return "class method不需new就可使用";
    }
    String c2() {
        return "instance method需new才可使用";
    }
}

public class ClassInstanceMethod {
    public static void main(String argv[]) {
        System.out.println("=呼叫class method=");
        System.out.println(A.c1());
        System.out.println("=呼叫instance method=");
        //System.out.println(A.c2()); =>error
        A a = new A();
        System.out.println(a.c2());
    }
}

參考:
http://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html
http://www.oreilly.com.tw/column_sleepless.php?id=j021

沒有留言: