版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
JAVA程序設(shè)計(jì)
對(duì)象和類知識(shí)圖譜理解對(duì)象和類的概念以及它們之間的關(guān)系;
學(xué)會(huì)用UML表示類與對(duì)象;
掌握類成員、類成員訪問(wèn)控制符、this關(guān)鍵詞;
掌握靜態(tài)變量、實(shí)例變量、靜態(tài)方法、實(shí)例方法;
掌握構(gòu)造方法、訪問(wèn)器方法、toString()方法;
掌握創(chuàng)建對(duì)象、對(duì)象引用變量、對(duì)象數(shù)組、對(duì)象作為方法參數(shù)、變量作用域;
掌握代碼塊、類代碼執(zhí)行順序、不可變類與對(duì)象。學(xué)習(xí)目標(biāo)類與對(duì)象的關(guān)系①對(duì)象(object)表示現(xiàn)實(shí)世界中可以明確識(shí)別的實(shí)體。例如,學(xué)生、圓、按鈕等。對(duì)象具有屬性和行為。屬性(變量):學(xué)號(hào)、姓名、平均分...行為(方法)姓名:張敏學(xué)號(hào):0001平均分:97學(xué)習(xí)選課考試......②類(class)定義了一類對(duì)象共有的屬性和方法。③類是對(duì)象的模板、藍(lán)圖;對(duì)象是類的實(shí)例。學(xué)生類類的UML表示11/7/2023類的UML表示類名實(shí)例變量(非靜態(tài)變量)實(shí)例方法(非靜態(tài)方法)構(gòu)造方法類變量(靜態(tài)變量)類方法(靜態(tài)方法)對(duì)象的UML表示對(duì)象名實(shí)例變量(非靜態(tài)變量)類變量(靜態(tài)變量)堆區(qū)方法區(qū)count:2......類成員類成員類成員屬性成員變量靜態(tài)變量(類變量)方法構(gòu)造方法靜態(tài)方法(類方法)非靜態(tài)方法(實(shí)例方法)訪問(wèn)器方法toString()方法業(yè)務(wù)方法類常量實(shí)例變量(非靜態(tài)變量)類常量類常量是用staticfinal修飾的變量。
例如,Math類中的常量PI定義為:publicstaticfinaldoublePI=3.14159265358979323846;實(shí)例變量與靜態(tài)變量實(shí)例變量(instancevariable):未用static修飾的成員變量,屬于類的具體實(shí)例(對(duì)象),只能通過(guò)對(duì)象引用變量訪問(wèn)。存儲(chǔ)于堆中。靜態(tài)變量(staticvariable):用static修飾的變量,在一個(gè)類的所有實(shí)例間共享,也稱類變量。靜態(tài)變量可以通過(guò)類名或?qū)ο笠米兞吭L問(wèn)。存儲(chǔ)于方法區(qū)。實(shí)例方法與靜態(tài)方法實(shí)例方法(non-staticmethod)是沒(méi)用static修飾的方法,也稱非靜態(tài)方法。
(1)可通過(guò)對(duì)象引用變量調(diào)用。(2)可被其他實(shí)例方法調(diào)用,不可在靜態(tài)方法中直接調(diào)用。靜態(tài)方法(staticmethod)是用static修飾的方法,也稱為類方法。例如:main(),Math.random()等
(1)靜態(tài)方法可以通過(guò)類名、對(duì)象引用變量或在類的實(shí)例方法中直接調(diào)用。(2)靜態(tài)方法只能訪問(wèn)類的靜態(tài)成員,不能訪問(wèn)類中的非靜態(tài)成員。類的定義類的定義類成員訪問(wèn)控制類成員訪問(wèn)控制類中代碼可以訪問(wèn)自身的所有成員。其它類的代碼訪問(wèn)類的成員,受訪問(wèn)控制符的限制:private:
只能當(dāng)前類自身可以訪問(wèn)。無(wú)訪問(wèn)修飾符的成員:只有相同包中的代碼可以訪問(wèn)。protected:
子類、同一包中的類可以訪問(wèn)。public:
所有其它類都可以訪問(wèn)。訪問(wèn)控制是在類的層次上進(jìn)行的,相對(duì)于類而言的,而不是在每個(gè)對(duì)象上。類屬性類的屬性聲明成員的屬性語(yǔ)法如下:[public|protected|private][static][final]<type><variable_name>public、protected、private:用于表示成員變量的訪問(wèn)權(quán)限。static:表示該成員變量為類變量,也稱為靜態(tài)變量。final:表示將該成員變量聲明為常量,其值無(wú)法更改。type:表示變量的類型。variable_name:表示變量名稱。類的屬性默認(rèn)值整型byte、short、int、long的基本類型變量的默認(rèn)值為0。單精度浮點(diǎn)型float的基本類型變量的默認(rèn)值為0.0f。雙精度浮點(diǎn)型double的基本類型變量的默認(rèn)值為0.0d。字符型char的基本類型變量的默認(rèn)值為“\u0000”。布爾型的基本類型變量的默認(rèn)值為false。數(shù)組引用類型的變量的默認(rèn)值為null。如果創(chuàng)建了數(shù)組變量的實(shí)例,但沒(méi)有顯式地為每個(gè)元素賦值,則數(shù)組中的元素初始化值采用數(shù)組數(shù)據(jù)類型對(duì)應(yīng)的默認(rèn)值。構(gòu)造方法構(gòu)造方法構(gòu)造方法:
特殊的方法,用于初始化對(duì)象。
在使用new運(yùn)算符創(chuàng)建一個(gè)對(duì)象時(shí)調(diào)用的。
語(yǔ)法:modifieroptclassName(parameterList){ statementsopt }缺省構(gòu)造方法缺省構(gòu)造方法:如果類未定義任何類型的構(gòu)造方法,編譯器會(huì)自動(dòng)提供一個(gè)不帶參數(shù)的構(gòu)造方法。如果已存在帶參數(shù)的構(gòu)造,則不會(huì)提供不帶參數(shù)的構(gòu)造方法。構(gòu)造方法特點(diǎn)①必須具備和所在類相同的名字。②沒(méi)有返回值類型,甚至連void
也沒(méi)有。③可以重載;即一個(gè)類可以定義多個(gè)方法簽名不同的構(gòu)造方法;④可以沒(méi)有參數(shù),沒(méi)有參數(shù)的構(gòu)造方法稱為無(wú)參構(gòu)造方法。⑤如果類未定義任何類型的構(gòu)造方法,編譯器會(huì)自動(dòng)提供一個(gè)不帶參數(shù)的構(gòu)造方法。⑥如果已定義的構(gòu)造方法,則不會(huì)提供無(wú)參構(gòu)造方法。this關(guān)鍵字this關(guān)鍵字(1)
this表示當(dāng)前對(duì)象在構(gòu)造方法或?qū)嵗椒ㄖ?,?shí)例變量被局部變量或方法參數(shù)隱藏,可以通過(guò)this.instanceVariable訪問(wèn)實(shí)例變量。不可用于靜態(tài)方法內(nèi)。(2)調(diào)用當(dāng)前類的其它構(gòu)造方法。this(actualParameterListopt)必須是構(gòu)造方法的第1條語(yǔ)句。訪問(wèn)器方法訪問(wèn)器方法通常為私有(private)成員變量提供Getter和Setter方法。例如:成員變量為DataTypepropertyNameGetter方法用于獲取成員變量的值
簽名:publicDataTypegetPropertyName()Setter方法用于設(shè)置成員變量的值
簽名:publicvoidsetPropertyName(DataTypevalue)toString()方法toString方法Object類中定義的toString()方法:getClass().getName()+"@"+Integer.toHexString(hashCode());getClass().getName()代表返回對(duì)象所屬類的包名.類名Integer.toHexString(hashCode())代表將對(duì)象的哈希值用16進(jìn)制表示,其中hashCode()代表返回該對(duì)象的哈希值。(2)在實(shí)際開(kāi)發(fā)中,通常重寫(xiě)toString()方法需要的信息。業(yè)務(wù)方法業(yè)務(wù)方法業(yè)務(wù)方法是類中用于處理業(yè)務(wù)邏輯而定義的方法塊??梢允庆o態(tài)的,也可以是非靜態(tài)的。例如:Student類定義如下業(yè)務(wù)方法:創(chuàng)建對(duì)象創(chuàng)建對(duì)象
使用new關(guān)鍵字創(chuàng)建對(duì)象語(yǔ)法:newClassName(arguments);例如:newStudent();//調(diào)用無(wú)參構(gòu)造方法newStudent(“019907”,“張敏”);
//調(diào)用參數(shù)的構(gòu)造方法Java虛擬機(jī)為新創(chuàng)建的對(duì)象分配內(nèi)存,并返回對(duì)象的引用。對(duì)象引用變量11/7/2023對(duì)象引用變量對(duì)象通過(guò)引用變量(referencevariable)進(jìn)行訪問(wèn),引用變量中存儲(chǔ)的是對(duì)象的引用地址。對(duì)象引用變量可以是靜態(tài)變量,也可以是實(shí)例變量。聲明引用變量語(yǔ)法:
ClassNameobjectRefVar;
例如:
Studentstu1;引用變量初始化
objectRefVar=newClassName(arguments);
例如:
stu=newStudent();11/7/2023對(duì)象引用變量同時(shí)聲明和創(chuàng)建對(duì)象引用變量ClassNameobjectRefVar=newClassName(arguments);
例如:Studentstu1=newStudent(“019907”,“張敏”);1.聲明一個(gè)引用變量,變量類型為Student,變量名為stu13.將對(duì)象的引用賦值給變量stu12.創(chuàng)建對(duì)象,返回對(duì)象的引用訪問(wèn)對(duì)象的實(shí)例變量和實(shí)例方法訪問(wèn)對(duì)象的實(shí)例變量和實(shí)例方法訪問(wèn)對(duì)象的實(shí)例變量語(yǔ)法:objectRefVar.data例如:;//訪問(wèn)對(duì)象stu1的name成員變量調(diào)用對(duì)象的實(shí)例方法objectRefVar.method(arguments)
例如:stu1.test();//調(diào)用對(duì)象的test()實(shí)例方法基本類型變量和引用類型變量的區(qū)別11/7/2023基本類型變量和引用類型變量的區(qū)別1基本類型iinti=1;null引用類型stu1Studentstu1;變量表示存儲(chǔ)數(shù)據(jù)的內(nèi)存單元。基本類型變量存儲(chǔ)的是基本類型的值。引用類型變量存儲(chǔ)的是對(duì)象的引用。當(dāng)變量未引用任何對(duì)象時(shí),它的值為null。對(duì)象的引用stu1Studentstu1=newStudent(“019907”,“張敏”);11/7/2023基本類型變量和引用類型變量賦值區(qū)別1基本類型i2j賦值前inti=1;intj=2;2i2ji=j;賦值后對(duì)象的引用引用類型stu1對(duì)象的引用stu2Studentstu1=newStudent(“019907”,“張敏”);Studentstu2=newStudent(“019936”,“曹舟”);stu1=stu2;對(duì)象的引用stu1對(duì)象的引用stu2不再被引用的對(duì)象,將被運(yùn)行時(shí)系統(tǒng)自動(dòng)回收變量作用域變量作用域
成員變量(實(shí)例變量和靜態(tài)變量)的作用域是整個(gè)類,與聲明的位置無(wú)關(guān)。如果一個(gè)變量的初始化依賴于另一個(gè)變量,則另一個(gè)變量必須先聲明如果一個(gè)局部變量具有與類中的變量相同的名稱,那么局部變量?jī)?yōu)先,成員變量被隱藏。
對(duì)象數(shù)組對(duì)象數(shù)組
與基本數(shù)據(jù)類型一樣,可以聲明并創(chuàng)建對(duì)象數(shù)組。當(dāng)創(chuàng)建對(duì)象數(shù)組時(shí),數(shù)組元素的缺省初值為null。
例:Student[]studentArray=newStudent[10];
數(shù)組的引用studentArraynullnull…nullstudentArray[0]studentArray[1]studentArray[9]棧堆對(duì)象引用對(duì)象引用…對(duì)象引用對(duì)象數(shù)組
與基本數(shù)據(jù)類型一樣,可以聲明并創(chuàng)建對(duì)象數(shù)組。當(dāng)創(chuàng)建對(duì)象數(shù)組時(shí),數(shù)組元素的缺省初值為null。例:Student[]studentArray=newStudent[10];for(inti=0;i<studentArray.length;i++){ studentArray[i]=newStudent();}
Student對(duì)象0Student對(duì)象1Student對(duì)象9數(shù)組的引用studentArraystudentArray[0]studentArray[1]studentArray[9]棧堆對(duì)象引用變量作為方法參數(shù)11/7/2023對(duì)象引用變量作為方法參數(shù)與傳遞數(shù)組一樣,傳遞對(duì)象實(shí)際是傳遞對(duì)象的引用?;緮?shù)據(jù)類型傳遞的是實(shí)際值的拷貝,修改形參,不影響實(shí)參。引用類型變量傳遞的是對(duì)象的引用,通過(guò)形參修改對(duì)象,將改變實(shí)參引用的對(duì)象。實(shí)參:1形參:copy基本類型copy實(shí)參:ref形參:refobject引用類型1代碼塊11/7/2023代碼塊方法代碼塊:
在方法內(nèi)定義的{...}語(yǔ)句代碼。靜態(tài)代碼塊:
在類中方法外定義的static{...}語(yǔ)句代碼。構(gòu)造代碼塊:
在類中方法外定義的{...}語(yǔ)句代碼。同步代碼塊:
在代碼塊或方法內(nèi)定義的synchronized(Xxx){...}語(yǔ)句代碼。用于線程同步。11/7/2023方法代碼塊方法代碼塊是在方法體中定義的,且方法代碼塊的執(zhí)行順序和書(shū)寫(xiě)順序一致。語(yǔ)法:執(zhí)行時(shí)機(jī):方法調(diào)用時(shí)執(zhí)行。作用:更好的可讀性、功能模塊化、避免局部變量命名沖突。11/7/2023靜態(tài)代碼塊在類中方法外使用static關(guān)鍵字和{}聲明的代碼塊。語(yǔ)法:執(zhí)行時(shí)機(jī):靜態(tài)代碼塊在類被加載的時(shí)候就運(yùn)行了,而且只運(yùn)行一次,并且優(yōu)先于各種代碼塊以及構(gòu)造方法。如果一個(gè)類中有多個(gè)靜態(tài)代碼塊,會(huì)按照書(shū)寫(xiě)順序依次執(zhí)行。作用:用于在系統(tǒng)啟動(dòng)的時(shí)候就執(zhí)行,如初始化系統(tǒng)參數(shù),加載配置文件,建立數(shù)據(jù)庫(kù)或網(wǎng)絡(luò)連接等。靜態(tài)代碼塊不能存在任何其他方法體中。靜態(tài)代碼塊不能訪問(wèn)非靜態(tài)成員。11/7/2023構(gòu)造代碼塊在類中方法外使用{}聲明的代碼塊(和靜態(tài)代碼塊的區(qū)別是少了static關(guān)鍵字)語(yǔ)法:執(zhí)行時(shí)機(jī):構(gòu)造代碼塊在創(chuàng)建對(duì)象時(shí)被調(diào)用,每次創(chuàng)建對(duì)象都會(huì)調(diào)用一次,但是優(yōu)先于構(gòu)造方法執(zhí)行。注意構(gòu)造代碼塊依托于構(gòu)造方法,即如果不實(shí)例化對(duì)象,構(gòu)造代碼塊是不會(huì)執(zhí)行的。如果存在多個(gè)構(gòu)造代碼塊,則執(zhí)行順序按照書(shū)寫(xiě)順序依次執(zhí)行。作用:由于構(gòu)造方法重載原因,創(chuàng)建對(duì)象實(shí)例時(shí)調(diào)用的構(gòu)造方法可能不同,可用構(gòu)造代碼塊執(zhí)行每次創(chuàng)建一個(gè)對(duì)象實(shí)例時(shí)都必須的代碼。例如統(tǒng)計(jì)創(chuàng)建對(duì)象的次數(shù)。類代碼執(zhí)行順序11/7/2023類代碼執(zhí)行順序含有main()方法的應(yīng)用程序類代碼執(zhí)行順序:靜態(tài)變量被賦予默認(rèn)初值(只執(zhí)行一次);靜態(tài)變量初始化(只執(zhí)行一次);
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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)價(jià)與發(fā)展計(jì)劃
- 2021年山東省泰安市公開(kāi)招聘警務(wù)輔助人員輔警筆試自考題1卷含答案
- 2023年內(nèi)蒙古自治區(qū)赤峰市公開(kāi)招聘警務(wù)輔助人員輔警筆試自考題1卷含答案
- 2024年山東省青島市公開(kāi)招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 2024年增味劑項(xiàng)目資金申請(qǐng)報(bào)告代可行性研究報(bào)告
- 2024年P(guān)CB高純化學(xué)品項(xiàng)目資金籌措計(jì)劃書(shū)代可行性研究報(bào)告
- 2025年無(wú)機(jī)礦物填充塑料項(xiàng)目規(guī)劃申請(qǐng)報(bào)告模范
- 2025年盆景及園藝產(chǎn)品項(xiàng)目提案報(bào)告
- 2025年電池組配件項(xiàng)目申請(qǐng)報(bào)告范文
- 2025年監(jiān)控?cái)z像頭項(xiàng)目申請(qǐng)報(bào)告模稿
- 公務(wù)車輛定點(diǎn)加油服務(wù)投標(biāo)文件(技術(shù)方案)
- 《中國(guó)制造業(yè)的崛起》課件
- 中小學(xué)學(xué)校安全管理制度匯編
- DB21∕T 3240-2020 芹菜農(nóng)藥安全使用生產(chǎn)技術(shù)規(guī)程
- 2024年全國(guó)《考評(píng)員》專業(yè)技能鑒定考試題庫(kù)與答案
- 廣州滬教牛津版七年級(jí)英語(yǔ)上冊(cè)期中試卷(含答案)
- 2025版國(guó)家開(kāi)放大學(xué)法律事務(wù)專科《民法學(xué)(1)》期末考試總題庫(kù)
- 幼兒心理健康的教育課件
- DB43T 1167-2016 高純(SiO ≥99.997%)石英砂 規(guī)范
- 《環(huán)境保護(hù)產(chǎn)品技術(shù)要求 工業(yè)廢氣吸附凈化裝置》HJT 386-2007
- 化工過(guò)程安全管理導(dǎo)則學(xué)習(xí)考試題及答案
評(píng)論
0/150
提交評(píng)論