類與對(duì)象、方法、封裝、包_第1頁(yè)
類與對(duì)象、方法、封裝、包_第2頁(yè)
類與對(duì)象、方法、封裝、包_第3頁(yè)
類與對(duì)象、方法、封裝、包_第4頁(yè)
類與對(duì)象、方法、封裝、包_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

面向?qū)ο蠹夹g(shù)本章目標(biāo)理解對(duì)象理解類理解抽象和封裝理解對(duì)象與類之間的關(guān)系掌握包的創(chuàng)建和導(dǎo)入面向?qū)ο缶幊谈拍?/p>

面向?qū)ο缶幊淌且环N創(chuàng)建計(jì)算機(jī)程序的方法,它模仿了現(xiàn)實(shí)世界中的物體被組合在一起的方式。生活實(shí)例:猜拳游戲前提:有兩個(gè)要進(jìn)行猜拳比賽的選手,一個(gè)裁判。動(dòng)作:1、兩名選手入場(chǎng)。

2、裁判入場(chǎng)。

3、開始三局兩勝比賽。

4、選手出拳,由裁判判斷輸贏,并給贏家加1分。

5、比賽結(jié)束后,由裁判宣讀比賽結(jié)果。演示Java語(yǔ)言面向?qū)ο蟪绦蛎嫦驅(qū)ο蟪绦蜓菔久嫦驅(qū)ο笳Z(yǔ)言的工作特點(diǎn)

面向?qū)ο笳Z(yǔ)言編寫的計(jì)算機(jī)程序,將重點(diǎn)放在要求計(jì)算機(jī)完成的任務(wù)上。計(jì)算機(jī)程序被視為一組相互協(xié)同、共同完成任務(wù)的對(duì)象。每個(gè)對(duì)象都是程序的獨(dú)立部分,它以特定的、高度可控的方式與其他部分進(jìn)行交互。猜拳游戲?qū)ο?/p>

對(duì)象是系統(tǒng)中用來(lái)描述客觀事物的一個(gè)實(shí)體,它是構(gòu)成系統(tǒng)的一個(gè)基本單位。對(duì)象由一組屬性和對(duì)這組屬性進(jìn)行操作的一組服務(wù)組成對(duì)象是實(shí)現(xiàn)域中某些事物的一個(gè)抽象對(duì)象反映該事物在系統(tǒng)中需要保存的信息和發(fā)揮的作用對(duì)象是一組屬性和有權(quán)對(duì)這些屬性進(jìn)行操作的一組服務(wù)的封裝體客觀世界是由對(duì)象和對(duì)象之間的聯(lián)系組成的對(duì)象裁判對(duì)象姓名:John得分:1出拳結(jié)果:石頭動(dòng)作:出拳加分姓名:Lisa得分:1出拳結(jié)果:剪子動(dòng)作:出拳加分姓名:Dave動(dòng)作:判斷每局勝負(fù)通知選手加分公布比賽結(jié)果選手對(duì)象選手對(duì)象類把眾多的事物歸納、劃分成一些類是人類在認(rèn)識(shí)客觀世界時(shí)經(jīng)常采用的思維方法。分類的原則是抽象。屬性:姓名服務(wù):判斷每局勝負(fù)通知選手加分公布比賽結(jié)果屬性:姓名得分出拳結(jié)果服務(wù):出拳加分裁判類選手類類類的特征

具有相同屬性和服務(wù)的一組對(duì)象的集合為屬該類的對(duì)象提供抽象描述

內(nèi)部包括屬性和服務(wù)類與對(duì)象的關(guān)系如模具和鑄件的關(guān)系類的實(shí)例化就是對(duì)象一類對(duì)象的抽象就是類屬性屬性是對(duì)象區(qū)別于其他對(duì)象的數(shù)據(jù),可用于確定屬于該類的對(duì)象的外觀、狀態(tài)和其他性質(zhì)。屬性

姓名得分出拳結(jié)果Lisa1分剪子===實(shí)例變量

實(shí)例變量定義了特定對(duì)象的屬性。對(duì)象的類定義了屬性的類型,每個(gè)實(shí)例都存儲(chǔ)了自己的屬性值。實(shí)例變量也叫對(duì)象變量。選手對(duì)象選手對(duì)象內(nèi)存……John2分石頭Lisa1分剪子姓名得分出拳結(jié)果姓名得分出拳結(jié)果0類變量

類變量定義了類的屬性類變量用于類本身及其所有的實(shí)例,不管使用該類創(chuàng)建了多少個(gè)對(duì)象,都只存儲(chǔ)該變量的一個(gè)值內(nèi)存…………類變量:選手人數(shù)創(chuàng)建對(duì)象對(duì)象1+112對(duì)象2Lisa2分2對(duì)象的類行為

行為指的是對(duì)象能夠?qū)ψ陨砗推渌麑?duì)象執(zhí)行的操作。行為可以用來(lái)修改對(duì)象的屬性,接收來(lái)自其他對(duì)象的信息以及向其他對(duì)象發(fā)送消息讓它們執(zhí)行任務(wù)。裁判對(duì)象選手對(duì)象內(nèi)存……John2分3Lisa1分2Lisa獲勝加1分執(zhí)行加分方法方法方法是類中用來(lái)完成某個(gè)任務(wù)的一組相關(guān)語(yǔ)句。針對(duì)對(duì)象執(zhí)行特定的任務(wù)對(duì)象之間能夠通過(guò)方法彼此進(jìn)行通信與C語(yǔ)言中的函數(shù)和子程序相同將變化告知另一個(gè)對(duì)象讓其他對(duì)象對(duì)自身進(jìn)行修改讓其他對(duì)象執(zhí)行某項(xiàng)操作

類方法方法分為實(shí)例方法和類方法。實(shí)例方法通常簡(jiǎn)稱方法,用于處理類的一個(gè)對(duì)象。類方法適用于類本身。屬性:姓名得分出拳結(jié)果類變量:選手人數(shù)方法:出拳加分類方法:獲取選手總?cè)藬?shù)選手類數(shù)據(jù)抽象

抽象是處理事物復(fù)雜性的方法:只關(guān)注事物的重要細(xì)節(jié),而忽略事物的次要細(xì)節(jié)。數(shù)據(jù)抽象:抽取出關(guān)鍵數(shù)據(jù)抽取出屬性和方法選手出拳結(jié)果選手姓名選手得分查看出拳值查看得分更新得分初始化對(duì)象選手類類對(duì)象經(jīng)過(guò)人類的抽象動(dòng)物用一個(gè)叫“動(dòng)物”的類來(lái)概括它們 類與對(duì)象——面向?qū)ο蟮暮诵母拍铑惖亩x修飾符class類名{

type

instance-variable1;…type

methodname1(parameter-list)

{

//

body

of

method

}

}類:對(duì)某一類事物的描述,抽象的、概念上的定義對(duì)象:實(shí)際存在的該類事物的個(gè)體,也稱實(shí)例。類與對(duì)象類的定義classPerson{intage;

voidshout(){System.out.println("Oh,mygod!myageis"+age);}}屬性age方法shout類是數(shù)據(jù)和方法的集合;類類是具有共同屬性和行為的對(duì)象的抽象。類可以定義為數(shù)據(jù)和方法的集合。對(duì)象具有特殊屬性和行為方式的實(shí)體。類對(duì)象抽象實(shí)例化封裝的實(shí)體=數(shù)據(jù)+方法操作或行為屬性或狀態(tài)方法數(shù)據(jù)或變量在Java中創(chuàng)建類class類名稱{//類開始標(biāo)記}//類結(jié)束標(biāo)記屬性聲明;方法聲明;Java語(yǔ)言中定義類的語(yǔ)法在Java中創(chuàng)建類類的命名規(guī)則:不能為Java中的關(guān)鍵字不能包含空格或點(diǎn)號(hào)“.”只能以下劃線“_”、“$”符號(hào)或字母開頭class

Person{

String

name;//定義參賽選手名字

intscore;//定義參賽選手得分

intgiveNum;//定義參賽選手本輪的出拳}

在Java類中定義方法返回值類型方法名稱{//方法開始標(biāo)記}//方法結(jié)束標(biāo)記方法主體Java語(yǔ)言中定義方法的語(yǔ)法(參數(shù)1,參數(shù)2,……

參數(shù)n)在Java類中定義方法class

Person{

String

name;//定義參賽選手名字

int

score;//定義參賽選手得分

int

giveNum;//定義參賽選手本輪的出拳

//返回該參賽選手的名字

public

String

getName()

{

return

name;

}

…}構(gòu)造方法構(gòu)造方法是一個(gè)特殊的方法:Java中的每個(gè)類都有構(gòu)造方法創(chuàng)建類實(shí)例時(shí)調(diào)用的方法與類同名,但沒有返回類型Java為對(duì)象分配內(nèi)存,初始化實(shí)例變量并調(diào)用構(gòu)造方法構(gòu)造方法只能由new運(yùn)算符調(diào)用兩種構(gòu)造方法:參數(shù)化構(gòu)造方法隱式構(gòu)造方法構(gòu)造方法參數(shù)化構(gòu)造方法classPerson{

Stringname;//定義參賽選手名字

intscore;//定義參賽選手得分

intgiveNum;//定義參賽選手本輪的出拳

Person(Stringna)//構(gòu)造方法

{ name=na; score=0;

}}

構(gòu)造方法隱式構(gòu)造方法classPerson{

Stringname;//定義參賽選手名字

intscore;//定義參賽選手得分

intgiveNum;//定義參賽選手本輪的出拳

}

創(chuàng)建對(duì)象時(shí)自動(dòng)創(chuàng)建一個(gè)無(wú)參數(shù)的構(gòu)造方法方法重載方法重載是指多個(gè)方法享有相同的方法名。重載的方法具備如下特點(diǎn):方法的參數(shù)必須不同方法參數(shù)的個(gè)數(shù)不同參數(shù)類型不同返回類型不能用來(lái)區(qū)分重載的方法

方法重載

Person()//構(gòu)造方法

{

name=

“選手”;//給姓名賦初值

score=0;//給成績(jī)賦初值

}

Person(String

na)//構(gòu)造方法

{

name=na;//給姓名賦初值

score=

0;//給成績(jī)賦初值

}

Person(String

na,int

sc)//構(gòu)造方法

{

name=na;//給姓名賦初值

score=

0;//給成績(jī)賦初值

}構(gòu)造方法重載創(chuàng)建對(duì)象類實(shí)例化可生成對(duì)象,對(duì)象通過(guò)消息傳遞來(lái)進(jìn)行交互。消息傳遞即激活指定的某個(gè)對(duì)象的方法以改變其狀態(tài)或讓它產(chǎn)生一定的行為。一個(gè)對(duì)象的生命周期包括三個(gè)階段:生成、使用和消除。創(chuàng)建對(duì)象創(chuàng)建對(duì)象

聲明實(shí)例化初始化類對(duì)象名稱

new

構(gòu)造方法(參數(shù))//實(shí)例化對(duì)象選手JohnPersonp1

=

newPerson("John");//實(shí)例化對(duì)象選手LisaPersonp2

=

newPerson("Lisa");//實(shí)例化裁判DaveJudgmentj1

=

newJudgment("Dave"); 對(duì)象的使用通過(guò)運(yùn)算符“.”可以實(shí)現(xiàn)對(duì)變量的訪問(wèn)和方法的調(diào)用。變量和方法可以通過(guò)設(shè)定訪問(wèn)權(quán)限來(lái)限制其它對(duì)象對(duì)它的訪問(wèn)。調(diào)用對(duì)象的變量格式:對(duì)象名.屬性名調(diào)用對(duì)象的方法格式:對(duì)象名.方法名(參數(shù)列表);

classCompareTwo{

publicstaticvoidmain(String[]args) //程序入口

{ ……

/*********************比賽開始*************************/

while(count<3) //根據(jù)進(jìn)行的局?jǐn)?shù)循環(huán)比賽

{ count=count+1; //又開始一論

System.out.println("第"

+count+

"局開始:");

//裁判判決本局哪位選手加分j1.JudgmentOne(p1,p2);

System.out.println("**********************************");

}……

}}對(duì)象方法的使用This引用this指針用于實(shí)例方法內(nèi),指向當(dāng)前對(duì)象this指針的值指向?qū)ζ湔{(diào)用當(dāng)前方法的對(duì)象this關(guān)鍵字在需要當(dāng)前類類型的對(duì)象引用時(shí)使用classPerson{

Stringname;//定義參賽選手名字Person(Stringname)//構(gòu)造方法

{

=

name;//給姓名賦初值

}voidgetName(){

System.out.println("選手姓名:"+name);}

publicstaticvoidmain(String[]args){Personp1=newPerson("王小睛");Personp2=newPerson("李麗");p1.getName();p2.getName();}}="王小睛";=“李麗";包包允許將類組合成較小的單元(類似文件夾),使其易于找到和使用相應(yīng)的類文件。有助于避免命名沖突,包基本上隱藏了類并避免了名稱上的沖突。包允許在更廣的范圍內(nèi)保護(hù)類、數(shù)據(jù)和方法,可以在包內(nèi)定義類,而在包外的代碼不能訪問(wèn)該類。包的創(chuàng)建packagegame.person;importjava.util.Random;public

classPerson{

Stringname;//定義參賽選手名字

intscore;//定義參賽選手得分

intgiveNum;//定義參賽選手本輪的出拳

publicPerson(Stringname)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論