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