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

下載本文檔

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

文檔簡介

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

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

2、裁判入場。

3、開始三局兩勝比賽。

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

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

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

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

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

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

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

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

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

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

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

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

type

instance-variable1;…type

methodname1(parameter-list)

{

//

body

of

method

}

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

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

Person{

String

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

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

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

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

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

Person{

String

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

int

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

int

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

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

public

String

getName()

{

return

name;

}

…}構(gòu)造方法構(gòu)造方法是一個特殊的方法:Java中的每個類都有構(gòu)造方法創(chuàng)建類實例時調(diào)用的方法與類同名,但沒有返回類型Java為對象分配內(nèi)存,初始化實例變量并調(diào)用構(gòu)造方法構(gòu)造方法只能由new運算符調(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)建對象時自動創(chuàng)建一個無參數(shù)的構(gòu)造方法方法重載方法重載是指多個方法享有相同的方法名。重載的方法具備如下特點:方法的參數(shù)必須不同方法參數(shù)的個數(shù)不同參數(shù)類型不同返回類型不能用來區(qū)分重載的方法

方法重載

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

{

name=

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

score=0;//給成績賦初值

}

Person(String

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

{

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

score=

0;//給成績賦初值

}

Person(String

na,int

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

{

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

score=

0;//給成績賦初值

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

聲明實例化初始化類對象名稱

new

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

=

newPerson("John");//實例化對象選手LisaPersonp2

=

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

=

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

classCompareTwo{

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

{ ……

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

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

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

System.out.println("第"

+count+

"局開始:");

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

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

}……

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

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

{

=

name;//給姓名賦初值

}voidgetName(){

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

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

classPerson{

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

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

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

publicPerson(Stringname)

溫馨提示

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

評論

0/150

提交評論