Java 教程《語法說明》定義 Method
■ 定義 Method
[access-modifiers] [static] [final] [static] [final] [synchronized] [abstract] [native] returnTypes methodName( [parameterList] ) [throws 例外物件] {
‥‥‥ // ClassBody
}
[註] access-modifiers 指 public|protected|private
returnType 為傳回型態。
[說明]
1. 抽像 method(method 前加上修飾字 abstract)不需有實質的內容,只要提供 method 的原型介面,也就是該 method 的名稱、和參數列的定義。
2. abstract 不可與 private、static、或是 final 混用,否則會產生編譯錯誤。
3. method 的 signature 由 method 名稱、formal parameters 的個數和資料型態所組成。
同一個 class 內不可以宣告有相同 signature 的 methods,否則會產生 compile-time error。
[範例]
private void myMethod( ) {
System.out.println("Hello World!!");
}
◆ Static Methods 和 Variables
static methods
[other-method-modifiers] static returnType methodName( [parameterList] ) {
/* Java statements here */
}
static variables
[other-field-modifiers] static dataType variableName;
[說明]
1. 宣告為 static 的 method,不須經由該 class 的物件進行存取。
2. static method 不可以宣告為 abstract,也不可以在 subclass 內被 redefined。
[範例]
static void myMethod( ) { // 靜態方法
/* Java statements */
}
static int myNumber; // 靜態變數
◆ Synchronized Methods
[other-modifiers] synchronized returnType methodName( [parameterList] ) {
/* Java statements */
}
[說明]
1. Synchronized Methods 在執行前會先鎖定(lock)。
2. 如果是類別方法,則伴隨 Class 物件的鎖將被使用。如果是非靜態方法,則伴隨 this 物件的鎖將被使用。
[範例]
public synchronized void addItem(Object obj) {
/* Java statements */
}
◆ Native Methods
native 方法以其它的程式語言撰寫,如 C++、Delphi 等。native 方法的本體只以一個分號結尾。
[範例]
public native int myNativeMethod(int x);