版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
4類和對象4.1引例:“人”的抽象4.2類4.3對象4.4類的封裝4.5靜態(tài)成員4.6包和實(shí)用類4.7應(yīng)用實(shí)例4.1引例:“人”的抽象【例4-1】Person類及對它的調(diào)用Person.java-:private+:public4.2類4.2.1類的定義4.2.2成員變量4.2.3成員方法4.2.1類的定義最簡單的類定義格式:[Modifiers]classClassName{ ClassBody}publicclassGoods{ privateclassContent{...} ...}Modifiers:被訪問權(quán)限,public或默認(rèn)、abstract、final(不允許該類被繼承)4.2.2成員變量類的成員變量就是類的屬性,描述了類的特性兩種形式:類變量〔static靜態(tài)的,類的所有對象共享〕和實(shí)例變量〔非靜態(tài)的〕4.2.2成員變量實(shí)例變量的聲明語法:[Modifiers]DataTypememberName;例如:privateStringname;privateintage;4.2.2成員變量實(shí)例變量的初始化聲明實(shí)例變量時(shí)可以直接賦初值,例如:privateStringname="張三";privateintage=12;如果沒有被賦初值,它們將被按照數(shù)據(jù)類型的默認(rèn)值初始化4.2.3成員方法成員方法描述了類能夠完成的操作,并負(fù)責(zé)對私有屬性的賦值和取值成員方法也有靜態(tài)和非靜態(tài)之分,分別被稱為類方法和實(shí)例方法4.2.3成員方法實(shí)例方法的聲明語法:[Modifiers]ResultTypemethodName(parameterList){ MethodBody}例如:publicintgetAge(){...}publicvoideat(Stringfood){...}4.2.3成員方法返回值返回類型是void以外的其它類型要求此方法必須有返回值有返回值的方法,結(jié)束方法體的最后一條可執(zhí)行語句必須是return例如:privateintage;publicintgetAge(){returnage;}4.2.3成員方法成員方法的重載[C語言沒有函數(shù)重載]同一個(gè)類中允許有多個(gè)同名但參數(shù)列表各不相同的方法,即成員方法的重載所謂參數(shù)列表各不相同,是指參數(shù)類型、個(gè)數(shù)和順序至少有一項(xiàng)不同JVM將根據(jù)參數(shù)的差異調(diào)用相應(yīng)的方法注意,重載對于方法的訪問修飾符、返回類型沒有相同或不同的要求4.2.3成員方法局部變量成員方法中可以聲明局部變量,還可以在方法的任何一個(gè)程序塊中聲明變量局部變量的作用域僅限于聲明它的方法或程序塊方法聲明中的參數(shù)也是只屬于方法的局部變量注意:局部變量在使用前必須由程序顯式賦初值,否那么編譯程序會(huì)報(bào)錯(cuò)4.3對象4.3.1對象的聲明和創(chuàng)立4.3.2對象的使用4.3.1對象的聲明和創(chuàng)立對象的聲明語法:[Modifiers]ClassNameobjectName[,...];例如:privateStringname;Personp1,p2;聲明對象僅聲明了對象的引用,此時(shí)對象為null,因此還不能被使用4.3.1對象的聲明和創(chuàng)立構(gòu)造方法用于創(chuàng)立類的實(shí)例對象,是一種特殊的成員方法。它的主要工作是初始化成員變量語法:[Modifiers]ClassName(parameterList){ MethodBody}4.3.1對象的聲明和創(chuàng)立默認(rèn)構(gòu)造方法沒有參數(shù)列表的構(gòu)造方法是默認(rèn)構(gòu)造方法類定義中,如果用戶沒有聲明構(gòu)造方法,Java將自動(dòng)生成一個(gè)僅有一條語句“super();”的默認(rèn)構(gòu)造方法,表示將調(diào)用父類的默認(rèn)構(gòu)造方法這條語句也將是所有構(gòu)造方法的第一條語句,只要這些構(gòu)造方法中沒有對父類構(gòu)造方法的調(diào)用4.3.1對象的聲明和創(chuàng)立構(gòu)造方法的特點(diǎn)構(gòu)造方法的方法名必須與類名相同。構(gòu)造方法不具有任何返回類型。包括void。任何一個(gè)類都有構(gòu)造方法。如果沒有顯式定義構(gòu)造方法,系統(tǒng)會(huì)定義一個(gè)默認(rèn)的構(gòu)造方法。4.3.1對象的聲明和創(chuàng)立構(gòu)造方法的重載例如:publicclassPerson{ publicPerson(){} publicPerson(Stringn,inta){ name=n; age=a; } ...}4.3.1對象的聲明和創(chuàng)立對象的創(chuàng)立聲明對象之后,還必須用new運(yùn)算符創(chuàng)立對象,即為之分配存儲(chǔ)空間。語法:newClassName(parameterList)4.3.1對象的聲明和創(chuàng)立new運(yùn)算符首先為對象分配存儲(chǔ)空間,再按照類聲明的次序依次執(zhí)行所有成員變量的初始化語句和初始化塊,之后調(diào)用構(gòu)造方法初始化實(shí)例變量,最終返回對象的引用4.3.1對象的聲明和創(chuàng)立this關(guān)鍵字關(guān)鍵字this表示當(dāng)前對象的引用,通常用來區(qū)分同名的實(shí)例變量和局部變量,例如:=name;this.age=age;構(gòu)造方法中也可以用this()來調(diào)用其它的構(gòu)造方法,例如:publicPerson(){ this("",0); //必須位于首行,此處調(diào)用構(gòu)造函數(shù)Person(String,int)}4.3.1對象的聲明和創(chuàng)立初始化塊類定義中,還可以有多個(gè)的初始化塊在創(chuàng)立類的對象時(shí),初始化塊將先于構(gòu)造方法被執(zhí)行初始化塊由一對大括號括起來,可以包含多條語句,一般用來對成員變量初始化Java的析構(gòu)C++的析構(gòu)函數(shù):釋放資源。~Person(){}Java具有自動(dòng)內(nèi)存回收機(jī)制??梢詫?shí)現(xiàn)finalize()方法4.3.2對象的使用引用對象引用對象的成員變量和調(diào)用對象的成員方法使用“.”運(yùn)算符,格式是:objectName.memberVariableNameobjectName.memberMethodName(parameterList)例如:System.out.println("我是"++",今年"+p1.age+"歲");4.3.2對象的使用傳遞參數(shù)按值傳遞:將實(shí)際參數(shù)的值傳遞給方法中對應(yīng)的形式參數(shù)按引用傳遞:將實(shí)際參數(shù)的引用地址傳遞給方法中對應(yīng)的形式參數(shù)由于實(shí)際參數(shù)和形式參數(shù)的地址相同,方法執(zhí)行時(shí)對形式參數(shù)的操作實(shí)際上就是對實(shí)際參數(shù)的操作,形式參數(shù)值的改變會(huì)影響實(shí)際參數(shù)的值在Java里面只有根本類型和直接使用雙引號定義字符串是按值傳遞,其它的都是按引用傳遞。Stringstr="HelloJava";4.4類的封裝4.4.1訪問控制屬性4.4.2設(shè)置類的訪問控制屬性4.4.3設(shè)置類成員的訪問控制屬性4.4.1訪問控制屬性修飾符
同一類
同一包
不同包的子類
所有類
私有(private)
允許
默認(rèn)允許
允許
保護(hù)(protected)
允許
允許
允許
公共(public)允許
允許
允許
允許
沒有public、protected、private那么稱為默認(rèn)。4.4.2設(shè)置類的訪問控制屬性對于外部類來說,訪問控制屬性只能是默認(rèn)和public的,不能是private和protected的private和protected訪問屬性只能使用在內(nèi)部類上4.4.2設(shè)置類的訪問控制屬性如果將假設(shè)干個(gè)類定義放在同一個(gè)java文件中,使用public修飾符的類最多只能有一個(gè)如果文件中有public類,文件必須與此類同名4.4.3設(shè)置類成員的訪問控制屬性類的成員變量和成員方法的訪問控制屬性可以有四種:默認(rèn)、public、private和protected在設(shè)計(jì)類時(shí),基于封裝的要求,通常對支持類自身運(yùn)行的成員聲明為private,僅把作為其他對象訪問自己的接口的方法根據(jù)需要聲明為默認(rèn)、public或protected,一般是public4.5靜態(tài)成員4.5.1靜態(tài)變量4.5.2靜態(tài)方法4.5.1靜態(tài)變量靜態(tài)變量是聲明時(shí)使用了static修飾符的變量,例如:privatestaticinttotal;系統(tǒng)僅在加載類時(shí)創(chuàng)立一份靜態(tài)變量副本,該副本將被此類的所有對象共享靜態(tài)變量與類有關(guān)而與對象無關(guān),這也是靜態(tài)變量被稱為類變量的原因4.5.1靜態(tài)變量引用靜態(tài)變量使用類名和對象名都可以【例4-2】靜態(tài)變量的應(yīng)用PersonStatic.java4.5.1靜態(tài)變量靜態(tài)初始化塊可以使用在類加載時(shí)即被執(zhí)行的靜態(tài)初始化塊為靜態(tài)變量提供初值語法:static{ //初始化靜態(tài)變量語句}注意,靜態(tài)初始化塊只能初始化靜態(tài)變量4.5.2靜態(tài)方法靜態(tài)方法是使用static修飾的方法,方法中只能訪問局部變量和靜態(tài)變量、調(diào)用靜態(tài)方法,不能直接引用實(shí)例成員語法:[Modifiers]staticResultTypemethodName(parameterList){ MethodBody}4.5.2靜態(tài)方法靜態(tài)方法可以通過對象名和類名來調(diào)用如果想在靜態(tài)方法中訪問實(shí)例成員,必須先創(chuàng)立對象,然后通過對象名引用靜態(tài)方法常用來為應(yīng)用中的其它類提供實(shí)用工具Java類庫中大量的靜態(tài)方法正是因此而定義的,例如Math類中的sin()、cos()和random()等方法4.6包和實(shí)用類4.6.1包4.6.2Java標(biāo)準(zhǔn)包4.6.3實(shí)用類4.6.1包Java提供了包機(jī)制來組織類,將所有的類按一定的原那么分別放置在不同的包中,同一個(gè)包中不允許有同名的類包就是目錄,包中還可以有包,稱為子包,即子目錄創(chuàng)立包意味著在文件系統(tǒng)下創(chuàng)立與包同名的目錄4.6.1包聲明包:packagepackageName[.packageName1[.packageName2[...]]];4.6.1包導(dǎo)入包:importpackageName[.packageName1[.packageName2[...]]].ClassName|*;包限定:packageName[.packageName1[.packageName2[...]]].ClassName4.6.1包注意:如果一個(gè)類屬于默認(rèn)包,那么它只能被同在默認(rèn)包中的類引用,而無法被其它包中的類引用因此應(yīng)盡量防止使用默認(rèn)包4.6.2Java標(biāo)準(zhǔn)包4.6.3實(shí)用類根本數(shù)據(jù)類型包裝類4.6.3實(shí)用類數(shù)學(xué)Math類staticdoubleE,自然對數(shù)的底數(shù)estaticdoublePI,圓的周長與直徑之比π4.6.3實(shí)用類4.6.3實(shí)用類【例4-3】比較兩個(gè)隨機(jī)數(shù)的大小Comparisons.java類之間的關(guān)系關(guān)聯(lián)(Association):一對一、一對多、多對多課程、老師、學(xué)生實(shí)線箭頭依賴(Dependency):類之間的調(diào)用關(guān)系。虛線箭頭類之間的關(guān)系聚集(Aggregation):整體局部之間的關(guān)系。點(diǎn)與矩形、汽車與車輪。實(shí)線菱形箭頭泛化(Generalization):繼承。實(shí)線三角箭頭實(shí)現(xiàn)(Realization):類與接口之間的關(guān)系。虛線三角箭頭4.7應(yīng)用實(shí)例4.7.1點(diǎn)和矩形的抽象4.7.2通訊錄項(xiàng)4.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 設(shè)計(jì)師工作計(jì)劃
- 2024年體育用品銷售員提成及促銷活動(dòng)合同3篇
- 2024年建筑節(jié)能施工員聘用合同3篇
- 初中暑假學(xué)習(xí)計(jì)劃
- 高爐爐渣綜合利用工程可行性研究報(bào)告
- 三年級教學(xué)工作計(jì)劃5篇
- 2022中學(xué)班主任個(gè)人工作計(jì)劃
- 小學(xué)體育工作總結(jié)
- 公司助理個(gè)人實(shí)習(xí)工作
- 六年級畢業(yè)演講稿范文集錦七篇
- 四年級下冊混合運(yùn)算100道及答案
- 浙江省寧波市慈溪市2023-2024學(xué)年八年級上學(xué)期期末數(shù)學(xué)試題(含答案)
- 【小學(xué)心理健康教育分析國內(nèi)外文獻(xiàn)綜述4100字】
- 藝術(shù)療愈行業(yè)分析
- 中醫(yī)院肺病科年度工作計(jì)劃
- 老年綜合評估知情同意書
- 會(huì)議籌備工作分工表
- 2023火電機(jī)組深度調(diào)峰工況下的涉網(wǎng)性能技術(shù)要求
- 醫(yī)學(xué)英語術(shù)語解密-福建醫(yī)科大學(xué)中國大學(xué)mooc課后章節(jié)答案期末考試題庫2023年
- 內(nèi)燃機(jī)車點(diǎn)檢方法探討
- 2023初一語文現(xiàn)代文閱讀理解及解析:《貓》
評論
0/150
提交評論