版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、面向?qū)ο?2022-5-181目標(biāo)u理解類和對(duì)象的特征(屬性和方法)u掌握作用域和訪問(wèn)修飾符u掌握創(chuàng)建和使用對(duì)象22022-5-18面向?qū)ο缶幊谈攀鰑面向?qū)ο缶幊蹋∣bject Oriented Programming,簡(jiǎn)稱OOP)描述的是對(duì)象之間的相互作用。u面向?qū)ο缶幊膛c面向過(guò)程編程的區(qū)別 過(guò)程化程序設(shè)計(jì)先確定算法,再確定數(shù)據(jù)結(jié)構(gòu);面向?qū)ο缶幊滔却_定數(shù)據(jù)結(jié)構(gòu),再確定運(yùn)算。 面向過(guò)程編程的程序員,習(xí)慣于建立數(shù)據(jù)結(jié)構(gòu)存放數(shù)據(jù)并定義方法(函數(shù))來(lái)操作數(shù)據(jù);面向?qū)ο缶幊痰某绦騿T則構(gòu)造一個(gè)對(duì)象模型,將數(shù)據(jù)與方法組織在一起。32022-5-18面向?qū)ο髐OOAObject Oriented Analy
2、sis 面向?qū)ο蟮姆治鰑OODObject Oriented Design 面向?qū)ο蟮脑O(shè)計(jì)uOOIObject Oriented Implementation 面向?qū)ο蟮膶?shí)現(xiàn)OOP Object Oriented 面向?qū)ο蟮木幊?2022-5-18類和對(duì)象u把相似的對(duì)象劃歸成一個(gè)類。u在軟件中,類,就是一個(gè)模板,它定義了通用于一個(gè)特定種類的所有對(duì)象的狀態(tài)(變量)和行為(方法)。u類是創(chuàng)建對(duì)象的模板,對(duì)象是類的實(shí)例。52022-5-18variablesmethods變量、方法、消息u變量:即指對(duì)象的所知道的狀態(tài)u方法:指對(duì)象的功能單元。u什么是消息? 軟件對(duì)象通過(guò)相互間傳遞消息來(lái)相互作用和通信
3、u 一個(gè)消息由三部分組成: 1. 接受消息的對(duì)象 2. 要完成方法的名字 3. 方法需要的參數(shù)62022-5-18對(duì)象對(duì)象B對(duì)象對(duì)象 Amessage面向?qū)ο蟪绦蛟O(shè)計(jì)u從程序設(shè)計(jì)的角度看,類是面向?qū)ο蟪绦蛑凶罨镜某绦騿卧?。類?shí)質(zhì)上定義的是一種數(shù)據(jù)類型,這種數(shù)據(jù)類型就是對(duì)象類型 。所以我們可以使用類名稱來(lái)聲明對(duì)象變量。u聲明對(duì)象變量之后,還不能使用對(duì)象。必須用運(yùn)算符new創(chuàng)建對(duì)象實(shí)體之后,才能使用對(duì)象。72022-5-18變量及作用域u變量的作用域確定了可訪問(wèn)的程序代碼范圍,確定了變量的生命周期u按作用域分: 成員變量:類中聲明,作用域?yàn)檎麄€(gè)類 局部變量:方法內(nèi)部或代碼塊,作用在內(nèi) 方法參數(shù):
4、整個(gè)方法或構(gòu)造方法u按是否被static修飾: 靜態(tài)變量 實(shí)例變量u將局部變量的作用域最小化修飾符u訪問(wèn)控制修飾符 控制類及類的方法和變量的訪問(wèn)權(quán)限級(jí)別修飾符同類同包子類不同包公開public受保護(hù) protected默認(rèn)無(wú)私有private頂層類不能用頂層類不能用protected、private來(lái)修飾來(lái)修飾訪問(wèn)級(jí)別緊緊適用于類及類的成員,而不適用于局部變量訪問(wèn)級(jí)別緊緊適用于類及類的成員,而不適用于局部變量abstract修飾符u用來(lái)修飾類和成員方法 修飾類表示抽象類,抽象類不能被實(shí)例化 修飾方法標(biāo)識(shí)抽象方法,抽象方法沒(méi)有方法體。抽象方法用來(lái)描述系統(tǒng)具有什么功能,但不提供具體實(shí)現(xiàn)。u語(yǔ)法規(guī)則
5、 抽象類可以沒(méi)有抽象方法,有抽象方法的類必須被定義為抽象類 如果子類沒(méi)有實(shí)現(xiàn)父類中所有抽象方法,子類必須被定義為抽象類 沒(méi)有抽象的構(gòu)造方法,沒(méi)有抽象的靜態(tài)方法 抽象類及抽象方法不能被final修飾 final修飾符ufinal具有“不可改變的”的含義 用final修飾的類不能被繼承,沒(méi)有子類 用final修飾的方法不能被子方法覆蓋 用final修飾的變量表示常量,只能被賦一次值u使用規(guī)則 final變量都必須被顯示初始化 引用類型變量用final修飾,該變量始終引用一個(gè)對(duì)象,但可以改變對(duì)象內(nèi)容 static修飾符u靜態(tài)變量:內(nèi)存中只有一個(gè)拷貝,在類的所有實(shí)例中共享,理解為全局變量u靜態(tài)方法:u
6、靜態(tài)代碼塊:僅在該類被加載時(shí)執(zhí)行一次,通常用于初始化變量u靜態(tài)類:只有內(nèi)部類可以聲明為靜態(tài)u使用規(guī)則: 靜態(tài)成員都可以通過(guò)類名直接訪問(wèn)Java 類的定義格式 修飾符修飾符 class class 類名類名 繼承父類繼承父類接口接口 成員變量;成員變量;構(gòu)造函數(shù);構(gòu)造函數(shù);成員方法;成員方法; u每個(gè)源代碼文件只能有一個(gè)public類;u文件名必須與public類名相同;132022-5-18創(chuàng)建對(duì)象 使用下列語(yǔ)法可創(chuàng)建對(duì)象: new 構(gòu)造函數(shù) 關(guān)鍵字 new 通常稱為創(chuàng)建運(yùn)算符,用于分配對(duì)象內(nèi)存,并將該內(nèi)存初始化為缺省值。 一旦 new 完成分配和初始化內(nèi)存,它就將調(diào)用構(gòu)造函數(shù)來(lái)執(zhí)行對(duì)象初始化
7、。 142022-5-18當(dāng)創(chuàng)建一個(gè)類時(shí),只是創(chuàng)建了當(dāng)創(chuàng)建一個(gè)類時(shí),只是創(chuàng)建了一種新的數(shù)據(jù)類型。對(duì)象是類一種新的數(shù)據(jù)類型。對(duì)象是類的一個(gè)實(shí)例。的一個(gè)實(shí)例。class FruitDemo public static void main(String args) Fruit f = new Fruit(true,false,50.0F); 創(chuàng)建對(duì)象創(chuàng)建對(duì)象new1 1、第一步,你必須聲明該類類型的一個(gè)變量,這、第一步,你必須聲明該類類型的一個(gè)變量,這個(gè)變量沒(méi)有定義一個(gè)對(duì)象。實(shí)際上,個(gè)變量沒(méi)有定義一個(gè)對(duì)象。實(shí)際上,它只是一個(gè)它只是一個(gè)能夠引用對(duì)象的簡(jiǎn)單變量。能夠引用對(duì)象的簡(jiǎn)單變量。2 2、第二步,該
8、聲明要?jiǎng)?chuàng)建、第二步,該聲明要?jiǎng)?chuàng)建一個(gè)對(duì)象的實(shí)際的物理一個(gè)對(duì)象的實(shí)際的物理拷貝拷貝,并把對(duì)于,并把對(duì)于該對(duì)象的引用賦給該變量該對(duì)象的引用賦給該變量。這是。這是通過(guò)通過(guò)使用使用newnew運(yùn)算符實(shí)現(xiàn)運(yùn)算符實(shí)現(xiàn)的。的。newnew運(yùn)算符為對(duì)象動(dòng)運(yùn)算符為對(duì)象動(dòng)態(tài)分配(即在態(tài)分配(即在運(yùn)行時(shí)分配運(yùn)行時(shí)分配)內(nèi)存空間,并返回對(duì))內(nèi)存空間,并返回對(duì)它的一個(gè)引用。這個(gè)引用或多或少的是它的一個(gè)引用。這個(gè)引用或多或少的是newnew分配分配給對(duì)象的內(nèi)存地址。然后這個(gè)引用被存儲(chǔ)在該變給對(duì)象的內(nèi)存地址。然后這個(gè)引用被存儲(chǔ)在該變量中。這樣,在量中。這樣,在JavaJava中,所有的類對(duì)象都必須動(dòng)中,所有的類對(duì)象都必須動(dòng)
9、態(tài)分配。態(tài)分配。 152022-5-18示例:u class Box u double width;u double height;u double depth;u class BoxDemo2 u public static void main(String args) u Box mybox1 = new Box();u double vol;u mybox1.width = 10;u mybox1.height = 20;u mybox1.depth = 15;u vol = mybox1.width * mybox1.height * mybox1.depth;u System.out
10、.println(Volume is + vol);u u 162022-5-18給對(duì)象引用變量賦值例如:下面的程序段是做什么呢?例如:下面的程序段是做什么呢?Box b1 = new Box();Box b1 = new Box();Box b2 = b1;Box b2 = b1;172022-5-18對(duì)象引用 b1 b1和和b2b2將引用同樣的對(duì)象。將將引用同樣的對(duì)象。將b1b1賦值賦值給給b2b2并沒(méi)有分配任何內(nèi)存并沒(méi)有分配任何內(nèi)存或?qū)υ瓕?duì)象做或?qū)υ瓕?duì)象做任何部分的拷貝。由于它們是同一個(gè)對(duì)任何部分的拷貝。由于它們是同一個(gè)對(duì)象,因此通過(guò)變量象,因此通過(guò)變量b2b2對(duì)對(duì)象的改變也將對(duì)對(duì)象的改
11、變也將影響影響b1b1所對(duì)應(yīng)的對(duì)象。所對(duì)應(yīng)的對(duì)象。 182022-5-18Box b1 = new Box();Box b1 = new Box();Box b2 = b1;Box b2 = b1;b1 = nullb1 = null;/;/b1被設(shè)置為空,但是被設(shè)置為空,但是b2仍然指向原來(lái)的對(duì)象。仍然指向原來(lái)的對(duì)象。 Box b1 = new Box();Box b1 = new Box();Box b2 = b1;Box b2 = b1;方法 方法是類的主要組成部分。在一個(gè)類中,方法是類的主要組成部分。在一個(gè)類中,程序的作用體現(xiàn)在方法中。方法是程序的作用體現(xiàn)在方法中。方法是JavaJav
12、a語(yǔ)語(yǔ)言的基本構(gòu)件。利用方法可以組成結(jié)構(gòu)良言的基本構(gòu)件。利用方法可以組成結(jié)構(gòu)良好的程序。本章介紹方法的構(gòu)成規(guī)則和設(shè)好的程序。本章介紹方法的構(gòu)成規(guī)則和設(shè)計(jì)、使用方法的基本要點(diǎn)。計(jì)、使用方法的基本要點(diǎn)。192022-5-18定義方法 定義方法的一般格式:access type methodname1(parameter-list) /方法體方法體202022-5-18發(fā)往某個(gè)對(duì)象的消息對(duì)應(yīng)于發(fā)往某個(gè)對(duì)象的消息對(duì)應(yīng)于一個(gè)方法調(diào)用。作為對(duì)消息一個(gè)方法調(diào)用。作為對(duì)消息的響應(yīng),對(duì)象將執(zhí)行一個(gè)類的響應(yīng),對(duì)象將執(zhí)行一個(gè)類似于過(guò)程體的方法。方法是似于過(guò)程體的方法。方法是包含在類中的函數(shù)。包含在類中的函數(shù)。方法名
13、稱方法名稱返回類型返回類型修飾符,修飾符,可選可選參數(shù)列表,參數(shù)列表,可選可選舉例:舉例:public void setdate(int day, int month, int year) day=23; month=7; year=2003;this關(guān)鍵字212022-5-18例例1 1:Box(double wBox(double w,double hdouble h,double d) double d) this.width = w; this.width = w; this.height = h; this.height = h; this.depth = d; this.depth = d; 例例2 2:Box(double widthBox(double width,double heightdouble height,double depth) double depth) this.width = width; this.width = width; this.height = height; this.height = height; this.depth = depth; this.depth = depth; this引用222022-5-18 注意,在這樣的環(huán)境下使用注意
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 銀行業(yè)華創(chuàng)金融紅利資產(chǎn)月報(bào):10月紅利板塊交易占比上升險(xiǎn)資舉牌熱情延續(xù)
- 保護(hù)牙齒的課程設(shè)計(jì)
- 2025廣西桂林市生態(tài)資源開發(fā)集團(tuán)有限公司公開招聘2人備考考試試題及答案解析
- 奧德賽歲月之旅課程設(shè)計(jì)
- 2025年云計(jì)算十年技術(shù)演進(jìn)與數(shù)據(jù)中心發(fā)展報(bào)告
- 2026年甘肅天水市事業(yè)單位引進(jìn)高層次人才(219人)考試重點(diǎn)題庫(kù)及答案解析
- 吉安市文化傳媒集團(tuán)有限責(zé)任公司2025年公開招聘勞務(wù)派遣工作人員考試重點(diǎn)試題及答案解析
- 2025年鄉(xiāng)村旅游公路游客承載十年預(yù)測(cè)行業(yè)報(bào)告
- 2025廣西北海市市場(chǎng)監(jiān)管投訴處置辦公室招錄公益性崗位人員2人考試核心題庫(kù)及答案解析
- 2025四川綿陽(yáng)市鹽亭發(fā)展投資集團(tuán)有限公司招聘職能部門及所屬子公司人員7人考試重點(diǎn)試題及答案解析
- 2025年谷胱甘肽及酵母提取物合作協(xié)議書
- 農(nóng)業(yè)機(jī)械安全培訓(xùn)課件
- 雨課堂在線學(xué)堂《醫(yī)學(xué)實(shí)驗(yàn)技術(shù)與方法新進(jìn)展》單元考核測(cè)試答案
- 【MOOC】《學(xué)術(shù)交流英語(yǔ)》(東南大學(xué))章節(jié)中國(guó)大學(xué)慕課答案
- 人工智能在機(jī)械設(shè)計(jì)制造及其自動(dòng)化中的應(yīng)用分析
- 電路基礎(chǔ)智慧樹知到期末考試答案章節(jié)答案2024年哈爾濱理工大學(xué)
- 2024廣西公需課高質(zhì)量共建“一帶一路”譜寫人類命運(yùn)共同體新篇章答案
- 品管圈(QCC)活動(dòng)成果報(bào)告書模板
- 房間維修服務(wù)工程項(xiàng)目詢價(jià)單
- 土家族服飾講座3課件
- 項(xiàng)目監(jiān)理部監(jiān)理周報(bào)
評(píng)論
0/150
提交評(píng)論