查看匯總:2014年計算機(jī)二級考試JAVA考點(diǎn)解析匯總
類是Java語言面向?qū)ο缶幊痰幕驹,它定義了一個對象的結(jié)構(gòu)和行為。在Java程序里,你要表達(dá)的概念封裝在某個類里。一個類定義了一個對象的結(jié)構(gòu)和它的功能接口,功能接口稱為成員函數(shù)。當(dāng)Java程序運(yùn)行時,系統(tǒng)用類的定義創(chuàng)建類的實(shí)例,類的實(shí)例是真正的對象。類定義的一般形式如下:
classclassnameextendssuperclassname{typeinstance-variable1;typeinstance-variable2;.................................typeinstance-variableN;typemethodname1(parameter-list){method-body;}typemethodname2(parameter-list){method-body;}....................................................typemethodnameN(parameter-list){method-body;}}
這里,classname和superclassname是合法的標(biāo)識符。關(guān)鍵詞extends用來表明classname是superclassname派生的子類。有一個類叫做Object,它是所有Java類的根。如果你想定義Object的直接子類,你可以省略extends子句,編譯器會自動包含它。下面是一個簡單的類的定義。classUniversity{}
5.1對象實(shí)例
類名可以作為變量的類型來使用,如果一個變量的類型是某個類,那么它將指向這個類的實(shí)例,稱為對象實(shí)例。所有對象實(shí)例和它們的類型(某個類?copy;的子類的實(shí)例都是相容的。就象可以把byte型的值賦給int型的變量一樣,你可以把Object的子類的任何實(shí)例賦給一個Object型的變量。一個實(shí)例是類模板的單獨(dú)的拷貝,帶有自己的稱為實(shí)例變量的數(shù)據(jù)集。每個實(shí)例也可以作為一個對象。當(dāng)你定義一個變量的類型是某個類時,它的缺省值是null,null是Object的一個實(shí)例。對象null沒有值,它和整數(shù)0不同。下面這個例子中,聲明變量u的類型是類University。Universityu;這里,變量u的值是null。
5.2實(shí)例變量
Java通過在類定義的大括號里聲明變量來把數(shù)據(jù)封裝在一個類里。這里的變量稱為實(shí)例變量。下面的例子定義了一個叫做University的類,它有兩個實(shí)例變量:name和city。classUniversity{Stringname,city;}
5.3new操作符
操作符new用來生成一個類的實(shí)例,下面這個例子生成了類University的一個實(shí)例,存放在變量u中。
Universityu=newUniversity();在此例中,變量u指向這個對象,但并不真正包含這個對象。你可以用多個變量指向同一個對象。下面的例子中,創(chuàng)建了一個University的對象,但創(chuàng)建了兩個指向它的變量。
Universityu=newUniversity();Universityu2=u;
對u2所指向的對象的任何改動都會對u所指向的對象起作用,因?yàn)樗鼈兪峭粋對象。對u和u2的賦值只是把它們指向這個對象,既沒有分配內(nèi)存,也沒有復(fù)制這個對象的任何部分。對u的再賦值只是簡單地去掉了u和原來對象的聯(lián)系,并不影響對象本身,下面的例子說明了這種情況。
Universityu=newUniversity();Universityu2=u;u=null;
盡管u被賦值為null,u2仍指向原來由操作符new創(chuàng)建的對象。在前面的例子里,我們生成了一個對象并且指向了它兩次。這就允許兩個變量改變同一個對象。創(chuàng)建一個新的對象時,可直接對它的實(shí)例變量賦值。每個對象都有它所屬類的實(shí)例變量的拷貝,每個對象的實(shí)例變量都是和其他對象的實(shí)例變量分離的,所以改變一個對象的實(shí)例變量不會影響其他對象的實(shí)例變量。下面的例子創(chuàng)建了兩個University的對象,并對它們分別賦值:classTwoUniversity{publicstaticvoidmain(Stringargs[]){Universityu1=newUniversity();Universityu2=newUniversity();u1.name=\"北?copy;大學(xué)\";u1.city=\"北?copy;\";u2.name=\"清華大學(xué)\";u2.city=\"北?copy;\";System.out.println(\"大學(xué):\"+u1.name+\"城市:\"+u1.city);System.out.println(\"大學(xué):\"+u2.name+\"城市:\"+u2.city);}}這個例子創(chuàng)建了兩個University的對象,并且對它們的name、city分別賦了不同的值,這說明這兩個對象是真正分離的。下面是該程序運(yùn)行后的輸出結(jié)果。C:\\>javaTwoUniversity大學(xué):北?copy;大學(xué)城市:北?copy;大學(xué):清華大學(xué)城市:北?copy;
5.4點(diǎn)(.?copy;操作符點(diǎn)(.?copy;操作符用來接收一個對象的實(shí)例變量和成員函數(shù)。下面是用點(diǎn)操作符來接收實(shí)例變量的一般形式。objectreference.variablename
這里objectreference是一個對象實(shí)例,variablename是這個對象里你想接收的實(shí)例變量。下面的程序段說明了怎樣用點(diǎn)操作符來給實(shí)例變量賦值。
u.name=\"北?copy;大學(xué)\";u.city=\"北?copy;\";下面說明怎樣用點(diǎn)操作符來得到實(shí)例變量的值。System.out.println(\"大學(xué):\"+u.name+\"城市:\"+u.city);通過向類University里加入一個成員函數(shù)main,我們創(chuàng)建了一個完整的例子,它使用了new操作符來創(chuàng)建一個University,用點(diǎn)操作符來賦值,然后打印結(jié)果。classUniversity{Stringname,city;publicstaticvoidmain(Stringargs[]){Universityu=newUniversity();u.name=\"北?copy;大學(xué)\";u.city=\"北?copy;\";System.out.println(\"大學(xué):\"+u.name+\"城市:\"+u.city);}}
運(yùn)行這個程序后,就會得到下面的結(jié)果。C:\\>javaUniversity大學(xué):北?copy;大學(xué)城市:北?copy;
相關(guān)推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |