版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
類與對(duì)象物流信息管理系統(tǒng)開發(fā)在面向?qū)ο笾?,為了做到讓程序?qū)κ挛锏拿枋雠c事物在現(xiàn)實(shí)中的形態(tài)保持一致,面向?qū)ο笏枷胫刑岢隽藘蓚€(gè)概念,即類和對(duì)象。在Java程序中類和對(duì)象是最基本、最重要的單元。類表示某類群體的一些基本特征抽象,對(duì)象表示一個(gè)個(gè)具體的事物。類與對(duì)象例如,在現(xiàn)實(shí)生活中,學(xué)生就可以表示為一個(gè)類,而一個(gè)具體的學(xué)生,就可以稱為對(duì)象。一個(gè)具體的學(xué)生會(huì)有自己的姓名和年齡等信息,這些信息在面向?qū)ο蟮母拍钪蟹Q為屬性;學(xué)生可以看書和打籃球,而看書和打籃球這些行為在類中就稱為方法。類與對(duì)象的關(guān)系如右圖。類與對(duì)象在上圖中,學(xué)生可以看作是一個(gè)類,小明、李華、大軍都是學(xué)生類型的對(duì)象。類用于描述多個(gè)對(duì)象的共同特征,它是對(duì)象的模板。對(duì)象用于描述現(xiàn)實(shí)中的個(gè)體,它是類的實(shí)例。對(duì)象是根據(jù)類創(chuàng)建的,一個(gè)類可以對(duì)應(yīng)多個(gè)對(duì)象。類與對(duì)象在面向?qū)ο蟮乃枷胫凶詈诵牡木褪菍?duì)象,而創(chuàng)建對(duì)象的前提是需要定義一個(gè)類,類是Java中一個(gè)重要的引用數(shù)據(jù)類型,也是組成Java程序的基本要素,所有的Java程序都是基于類的。1類的定義類是對(duì)象的抽象,用于描述一組對(duì)象的共同特征和行為。類中可以定義成員變量和成員方法,其中,成員變量用于描述對(duì)象的特征,成員變量也被稱作對(duì)象的屬性;成員方法用于描述對(duì)象的行為,可簡(jiǎn)稱為方法。類的定義格式如下所示:class類名{
成員變量;
成員方法;}1類的定義classStudent{Stringname; //定義String類型的變量nameintage; //定義int類型的變量ageStringsex; //定義String類型的變量sex //定義read()方法 voidread(){ System.out.println("大家好,我是"+name+",我在看書!"); }}
根據(jù)上述格式定義一個(gè)學(xué)生類,成員變量包括姓名(name)、年齡(age)、性別(sex);成員方法包括讀書read()。學(xué)生類定義的示例代碼如下所示。1類的定義在Java中,定義在類中的變量被稱為成員變量,定義在方法中的變量被稱為局部變量。如果在某一個(gè)方法中定義的局部變量與成員變量同名,這種情況是允許的,此時(shí),在方法中通過變量名訪問到的是局部變量,而并非成員變量。注意:局部變量與成員變量的不同1類的定義下面的代碼中,在Student類的read()方法中有一條打印語句,訪問了變量age,此時(shí)訪問的是局部變量age,也就是說當(dāng)有另外一個(gè)程序調(diào)用read()方法時(shí),輸出的age值為50,而不是30。classStudent{ intage=30; //類中定義的變量被稱作成員變量 voidread(){ intage=50; //方法內(nèi)部定義的變量被稱作局部變量 System.out.println("大家好,我"+age+"歲了,我在看書!"); }}1類的定義2對(duì)象的創(chuàng)建與使用在Java程序中可以使用new關(guān)鍵字創(chuàng)建對(duì)象,具體格式如下:類名對(duì)象名稱=null;對(duì)象名稱=new類名();上述格式中,創(chuàng)建對(duì)象分為聲明對(duì)象和實(shí)例化對(duì)象兩步,也可以直接通過下面的方式創(chuàng)建對(duì)象,具體格式如下:類名對(duì)象名稱=new類名();2對(duì)象的創(chuàng)建與使用例如,創(chuàng)建Student類的實(shí)例對(duì)象,示例代碼如下:Studentstu=newStudent();上述代碼中,newStudent()用于創(chuàng)建Student類的一個(gè)實(shí)例對(duì)象,Studentstu則是聲明了一個(gè)Student類型的變量stu。運(yùn)算符“=”將新創(chuàng)建的Student對(duì)象地址賦值給變量stu,變量stu引用的對(duì)象簡(jiǎn)稱為stu對(duì)象。1classStudent{2 Stringname; //聲明姓名屬性3 voidread(){4 System.out.println("大家好,我是"+name+",我在看書!");5 }6}7publicclassTest{8publicstaticvoidmain(String[]args[]){9 Studentstu=newStudent();//創(chuàng)建并實(shí)例化對(duì)象10 }11}2對(duì)象的創(chuàng)建與使用上述代碼在main()方法中實(shí)例化了一個(gè)Student對(duì)象,對(duì)象名稱為stu。使用new關(guān)鍵字創(chuàng)建的對(duì)象是在堆內(nèi)存分配空間。stu對(duì)象的內(nèi)存分配如圖。2對(duì)象的創(chuàng)建與使用創(chuàng)建Student對(duì)象后,可以使用對(duì)象訪問類中的某個(gè)屬性或方法,對(duì)象屬性和方法的訪問通過“.”運(yùn)算符實(shí)現(xiàn),具體格式如下:對(duì)象名稱.屬性名對(duì)象名稱.方法名2對(duì)象的創(chuàng)建與使用1classStudent{2 Stringname; //聲明姓名屬性3 voidread(){4 System.out.println("大家好,我是"+name);5 }6}接下來通過一個(gè)案例學(xué)習(xí)對(duì)象屬性和方法的訪問。2對(duì)象的創(chuàng)建與使用7classExample01{8 publicstaticvoidmain(String[]args){9 Studentstu1=newStudent(); //創(chuàng)建第一個(gè)Student對(duì)象10 Studentstu2=newStudent(); //創(chuàng)建第二個(gè)Student對(duì)象11 ="小明"; //為stu1對(duì)象的name屬性賦值12 stu1.read(); //調(diào)用對(duì)象的方法13 ="小華";14 stu2.read();15 }16}2對(duì)象的創(chuàng)建與使用程序運(yùn)行結(jié)果如下圖2對(duì)象的創(chuàng)建與使用上述代碼中,第2~5行代碼聲明了一個(gè)String類型的name屬性和一個(gè)read()方法,第9~10行代碼創(chuàng)建了stu1對(duì)象和stu2對(duì)象;第11行代碼為stu1對(duì)象name屬性賦值;第12行代碼通過stu1對(duì)象調(diào)用read()方法。第13行代碼為stu2對(duì)象name屬性賦值;第14行代碼通過stu2對(duì)象調(diào)用read()方法。2對(duì)象的創(chuàng)建與使用
從運(yùn)行結(jié)果可以看出,stu1對(duì)象和stu2對(duì)象在調(diào)用read()方法時(shí),打印的name值不相同。這是因?yàn)閟tu1對(duì)象和stu2對(duì)象是兩個(gè)完全獨(dú)立的個(gè)體,它們分別擁有各自的name屬性,對(duì)stu1對(duì)象的name屬性進(jìn)行賦值并不會(huì)影響到stu2對(duì)象name屬性的值。2對(duì)象的創(chuàng)建與使用
為stu1對(duì)象和stu2對(duì)象中的屬性賦值后,stu1對(duì)象和stu2對(duì)象的內(nèi)存變化如圖。2對(duì)象的創(chuàng)建與使用1classStudent{2 Stringname; //聲明姓名屬性3intage; //聲明年齡屬性4 voidread(){5 System.out.println("大家好,我是"+name+",年齡"+age);6 }7}類屬于引用數(shù)據(jù)類型,引用數(shù)據(jù)類型就是指內(nèi)存空間可以同時(shí)被多個(gè)棧內(nèi)存引用。接下來通過一個(gè)案例為大家詳細(xì)講解對(duì)象的引用傳遞。3對(duì)象的引用傳遞8classExample02{9 publicstaticvoidmain(String[]args){10 Studentstu1=newStudent();//聲明stu1對(duì)象并實(shí)例化11 Studentstu2=null;//聲明stu2對(duì)象,但不對(duì)其進(jìn)行實(shí)例化12 stu2=stu1;//stu1給stu2分配空間使用權(quán)。13 ="小明";//為stu1對(duì)象的name屬性賦值14 stu1.age=20;15 stu2.age=50;16 stu1.read(); //調(diào)用對(duì)象的方法17 stu2.read();18 }19}3對(duì)象的引用傳遞程序運(yùn)行結(jié)果如下圖3對(duì)象的引用傳遞上述代碼中,第2~3行代碼分別聲明了一個(gè)String類型的name屬性和一個(gè)int類型的age屬性;第4~6行代碼定義了一個(gè)read()方法。第10行代碼聲明stu1對(duì)象并實(shí)例化;第11行代碼聲明stu2對(duì)象,但不對(duì)其進(jìn)行實(shí)例化。第12行代碼把stu1對(duì)象的堆內(nèi)存空間使用權(quán)分配給stu2。第13~14行代碼為stu1對(duì)象的name屬性和age屬性賦值;第15行代碼為stu2對(duì)象的age屬性賦值;第16~17行代碼分別使用stu1對(duì)象和stu2對(duì)象調(diào)用read()方法。3對(duì)象的引用傳遞上述代碼中,對(duì)象引用傳遞的內(nèi)存分配如圖。首先聲明對(duì)象stu1并為stu1對(duì)象開辟空間。3對(duì)象的引用傳遞然后stu1對(duì)象為stu2對(duì)象分配使用權(quán),stu1和stu2指向同一內(nèi)存。3對(duì)象的引用傳遞stu1對(duì)象為屬性賦值。3對(duì)象的引用傳遞通過stu2修改age屬性的值。3對(duì)象的引用傳遞一個(gè)棧內(nèi)存空間只能指向一個(gè)堆內(nèi)存空間,如果想要再指向其它堆內(nèi)存空間,就必須先斷開已有的指向才能分配新的指向。3對(duì)象的引用傳遞針對(duì)類、成員方法和屬性,Java提供了4種訪問控制權(quán)限,分別是private、default、protected和public。這4種訪問控制權(quán)限按級(jí)別由小到大依次排列,如下圖。4訪問控制4訪問控制4種訪問控制權(quán)限,具體介紹如下。(1)private(當(dāng)前類訪問級(jí)別):private屬于私有訪問權(quán)限,用于修飾類的屬性和方法。類的成員一旦使用了private關(guān)鍵字修飾,則該成員只能在本類中進(jìn)行訪問。(2)default:如果一個(gè)類中的屬性或方法沒有任何的訪問權(quán)限聲明,則該屬性或方法就是默認(rèn)的訪問權(quán)限,默認(rèn)的訪問權(quán)限可以被本包中的其它類訪問,但是不能被其他包的類訪問。4訪問控制(3)protected:屬于受保護(hù)的訪問權(quán)限。一個(gè)類中的成員使用了protected訪問權(quán)限,則只能被本包及不同包的子類訪問。(4)public:public屬于公共訪問權(quán)限。如果一個(gè)類中的成員使用了public訪問權(quán)限,則該成員可以在所有類中被訪問,不管是否在同一包中。4訪問控制下面通過一張表總結(jié)上述的訪問控制權(quán)限。訪問范圍privatedefaultprotectedpublic同一類中√√√√同一包中的類
√√√不同包的子類
√√全局范圍
√4訪問控制publicclassTest{
publicintaa; //aa可以被所有的類訪問
protected
booleanbb; //可以被所有子類以及本包的類使用
voidcc(){ //default訪問權(quán)限,能在本包范圍內(nèi)使用System.out.println("包訪問權(quán)限");}//private權(quán)限的內(nèi)部類,即這是私有的內(nèi)部類,只能在本類使用
private
class
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026西安未央湖社區(qū)衛(wèi)生服務(wù)中心招聘筆試參考題庫(kù)及答案解析
- 2026山東臨沂市市直部分醫(yī)療衛(wèi)生事業(yè)單位招聘醫(yī)療后勤崗位9人筆試備考題庫(kù)及答案解析
- 2026年陜西世紀(jì)人才開發(fā)有限公司招聘(2人)筆試參考題庫(kù)及答案解析
- 2026北京市回民醫(yī)院第一批事業(yè)編制招聘13人考試備考題庫(kù)及答案解析
- 閬中市2025年公開考調(diào)工作人員(35人)考試題庫(kù)附答案解析
- 2026中國(guó)中煤能源集團(tuán)有限公司招聘總部及所屬企業(yè)有關(guān)崗位領(lǐng)導(dǎo)人員5人筆試參考題庫(kù)及答案解析
- 2025年藥劑師資格考題庫(kù)及標(biāo)準(zhǔn)答案解析
- 行政調(diào)解工作培訓(xùn)制度
- 培訓(xùn)學(xué)校物品申領(lǐng)制度
- 項(xiàng)目崗中培訓(xùn)制度
- 《醫(yī)學(xué)影像診斷報(bào)告書寫指南》(2025版)
- 紅酒倒酒知識(shí)培訓(xùn)總結(jié)報(bào)告課件
- 電大專科《公共行政學(xué)》簡(jiǎn)答論述題題庫(kù)及答案
- 2025成人高考全國(guó)統(tǒng)一考試專升本英語試題及答案
- 代辦煙花爆竹經(jīng)營(yíng)許可證協(xié)議合同
- 國(guó)企員工總額管理辦法
- 企業(yè)級(jí)AI大模型平臺(tái)落地框架
- TD/T 1036-2013土地復(fù)墾質(zhì)量控制標(biāo)準(zhǔn)
- 蘇教版六年級(jí)數(shù)學(xué)上冊(cè)全冊(cè)知識(shí)點(diǎn)歸納(全梳理)
- 車位包銷合同協(xié)議模板
- 病歷書寫規(guī)范版2025
評(píng)論
0/150
提交評(píng)論