| 在Java中,一個類別可以定義Field成員及方法(Method) 成員。 先來定義一個程式:
public class Ball {
在Java中,類別的存取權限修飾詞有"public"、"protected"、"private"三個,如果在宣告成員時不使用存取修飾詞,則預設以套件 (package)為存取範圍,也就是說在package外就無法存取,這些存取修飾,之後在 套件(package) 還會見到說明。 在這個程式中,您定義了一個Ball類別,當中定義了radius與name兩個field成員,這兩個資料成員被宣告為"private",表示它是 「私用成員」(Private member),它只能在同一個類別中被使用,不可以直接藉由物件參考名稱來存取它。 再來看到方法(Method)成員,它被宣告為"public",表示它可以被程式呼叫,一個方法成員為一小個程式片段或一個單元(Unit),這個程式 片段可重覆被呼叫使用,並可傳入引數或傳回一個數值,一個方法成員的基本宣告與定義方式如下 : 存取修飾 傳回值型態 方法名稱(參數列) {
// 實作 return 傳回值; } 參數列用來告知方法成員執行時所需的資料,如果傳入的引數是基本資料型態(Primitive data type),則會將值複製至參數列上的變數,如果傳入的引數是一個物件,則會將參數列上的變數參考至指定的物件。 方法區塊中可以宣告變數(Variable),變數在方法執行結束後就會自動清除,如果方法中的變數名稱與類別資料成員名稱同名,則方法中的變數名稱會暫 時覆蓋類別field資料成員的作用範圍,同樣的引數列上的引數名稱也會覆蓋field資料成員的作用範圍,如果此時要在方法區塊中使用 field成員,可以使用this關鍵字來特別指定。 方法的傳回值可以將計算的結果或其它想要的數值、物件傳回,如果是物件,則將傳回的物件給接受的變數參考。 在物件導向程式設計的過程中,有一個基本的原則,如果field成員能不公開就不公開,在Java中就是宣告其為"private",這是「資訊的最小化」,所以在程式中,private成員就經由setXXX()與getXXX()的公開方法來進行設定或存取,而不是直接呼叫該 field資料成員來存取。 Math.PI是由Java所提供的功能變數,它定義了圓周率3.14159......,在Math類別中還包括有許多公用的數學功能函式,您可以自行查詢 java.lang.Math 線上說明文件以得知這些功能。 另外可以注意到,autoboxing、 unboxing 在方法的參數列中是可以作用的,也就是說如果您的方法中是這樣設計的: public class SomeClass {
.... public void someMethod(Integer integer) { ...... } .... } 您可以使用這樣的方式來設定引數: SomeClass someObj = new SomeClass();
someObj.someMethod(1); autoboxing、unboxing會自動作用,但記得要小心使用這個功能。 一般在命名類別時,類別名稱首字會大寫,而方法名稱首字是小寫,名稱命名時以一目瞭解名稱的作用為原則,上面所採取的都是駱駝式的命名方式,也就是每個單字的首字予以適當的大寫,例如someMethodOfSomeClass這樣的方式,這是常見的一種命名慣例。 為field成員設定setXXX()或getXXX()這類的方法時,XXX名稱最好與field名稱相對應,例如name這個field 成員對應的方法,可以命名為setName()與getName(),而radius這個成員,則對應於setRadius()與getRadius() 這樣的名稱,如此閱讀程式時可以一目瞭解setter與getter方法的存取對象。 |