當前位置:才華齋>計算機>java語言>

Java的類

java語言 閱讀(1.45W)

引導語:類是什麼,大家知道嗎,以下是本站小編分享給大家的Java的類,歡迎參考學習!

Java的類

類是Java語言面向物件程式設計的基本元素,它定義了一個物件的結構和行為。在Java程式裡,你要表達的概念封裝在某個類裡。一個類定義了一個物件的結構和它的功能介面,功能介面稱為成員函式。當Java程式執行時,系統用類的定義建立類的例項,類的例項是真正的物件。類定義的一般形式如下:

classclassnameextendssuperclassname{typeinstance-variable1;typeinstance-variable2;instance-variableN;typemethodname1(parameter-list){method-body;}typemethodname2(parameter-list){method-body;}methodnameN(parameter-list){method-body;}}

這裡,classname和superclassname是合法的識別符號。關鍵詞extends用來表明classname是superclassname派生的子類。有一個類叫做Object,它是所有Java類的根。如果你想定義Object的直接子類,你可以省略extends子句,編譯器會自動包含它。下面是一個簡單的類的定義。classUniversity{}

5.1物件例項

類名可以作為變數的型別來使用,如果一個變數的型別是某個類,那麼它將指向這個類的例項,稱為物件例項。所有物件例項和它們的型別(某個類?copy;的子類的例項都是相容的。就象可以把byte型的值賦給int型的變數一樣,你可以把Object的子類的任何例項賦給一個Object型的變數。一個例項是類模板的單獨的拷貝,帶有自己的稱為例項變數的資料集。每個例項也可以作為一個物件。當你定義一個變數的型別是某個類時,它的預設值是null,null是Object的.一個例項。物件null沒有值,它和整數0不同。下面這個例子中,宣告變數u的型別是類University。Universityu;這裡,變數u的值是null。

5.2例項變數

Java通過在類定義的大括號裡宣告變數來把資料封裝在一個類裡。這裡的變數稱為例項變數。下面的例子定義了一個叫做University的類,它有兩個例項變數:name和city。classUniversity{Stringname,city;}

5.3new操作符

操作符new用來生成一個類的例項,下面這個例子生成了類University的一個例項,存放在變數u中。

Universityu=newUniversity();在此例中,變數u指向這個物件,但並不真正包含這個物件。你可以用多個變數指向同一個物件。下面的例子中,建立了一個University的物件,但建立了兩個指向它的變數。

Universityu=newUniversity();Universityu2=u;

對u2所指向的物件的任何改動都會對u所指向的物件起作用,因為它們是同一個物件。對u和u2的賦值只是把它們指向這個物件,既沒有分配記憶體,也沒有複製這個物件的任何部分。對u的再賦值只是簡單地去掉了u和原來物件的聯絡,並不影響物件本身,下面的例子說明了這種情況。

Universityu=newUniversity();Universityu2=u;u=null;

儘管u被賦值為null,u2仍指向原來由操作符new建立的物件。在前面的例子裡,我們生成了一個物件並且指向了它兩次。這就允許兩個變數改變同一個物件。建立一個新的物件時,可直接對它的例項變數賦值。每個物件都有它所屬類的例項變數的拷貝,每個物件的例項變數都是和其他物件的例項變數分離的,所以改變一個物件的例項變數不會影響其他物件的例項變數。下面的例子建立了兩個University的物件,並對它們分別賦值:classTwoUniversity{publicstaticvoidmain(Stringargs[]){Universityu1=newUniversity();Universityu2=newUniversity();="北?copy;大學";="北?copy;";="清華大學";="北?copy;";tln("大學:"++"城市:"+);tln("大學:"++"城市:"+);}}這個例子建立了兩個University的物件,並且對它們的name、city分別賦了不同的值,這說明這兩個物件是真正分離的。下面是該程式執行後的輸出結果。C:>javaTwoUniversity大學:北?copy;大學城市:北?copy;大學:清華大學城市:北?copy;

5.4點(.?copy;操作符點(.?copy;操作符用來接收一個物件的例項變數和成員函式。下面是用點操作符來接收例項變數的一般形式。ablename

這裡objectreference是一個物件例項,variablename是這個物件裡你想接收的例項變數。下面的程式段說明了怎樣用點操作符來給例項變數賦值。

="北?copy;大學";="北?copy;";下面說明怎樣用點操作符來得到例項變數的值。tln("大學:"++"城市:"+);通過向類University里加入一個成員函式main,我們建立了一個完整的例子,它使用了new操作符來建立一個University,用點操作符來賦值,然後列印結果。classUniversity{Stringname,city;publicstaticvoidmain(Stringargs[]){Universityu=newUniversity();="北?copy;大學";="北?copy;";tln("大學:"++"城市:"+);}}

執行這個程式後,就會得到下面的結果。C:>javaUniversity大學:北?copy;大學城市:北?copy;