資源描述:
《面向?qū)ο蟾拍铑惡蛯?duì)象》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、第三講面向?qū)ο蟾拍睢㈩惡蛯?duì)象前講回顧qJava的8種基本數(shù)據(jù)類型qJava的字符串?dāng)?shù)據(jù)類型q數(shù)組的聲明、創(chuàng)建及訪問q三大流程控制結(jié)構(gòu)的使用qJCreator和Eclipse開發(fā)工具的使用2本講內(nèi)容摘要2-1q現(xiàn)實(shí)中的對(duì)象和類q面向?qū)ο缶幊谈拍罴芭c面向過程編程的區(qū)別q類的定義、實(shí)例化及使用q創(chuàng)建實(shí)例變量和類變量,實(shí)例方法和類方法q創(chuàng)建方法及方法的重載q構(gòu)造函數(shù)(構(gòu)造方法)、構(gòu)造函數(shù)重載qgetXXX和setXXX函數(shù)q類的封裝、繼承和多態(tài)3本講內(nèi)容摘要2-2q創(chuàng)建新對(duì)象new運(yùn)算符q類成員變量(字段)初始值q對(duì)象和引用q類的靜態(tài)成員q基本數(shù)據(jù)類型的封裝類
2、q目標(biāo)1:能將一個(gè)事物抽象、設(shè)計(jì)并創(chuàng)建相應(yīng)的類q目標(biāo)2:創(chuàng)建對(duì)象并使用4面向?qū)ο缶幊?OOP)q二十世紀(jì)七十年代發(fā)展起來的q結(jié)構(gòu)化編程的解決方案q模擬人類的思維過程q將數(shù)據(jù)和方法以“對(duì)象”為基體進(jìn)行操作ObjectOrientedProgramsq面向過程是將一個(gè)待解決的問題分解成一系列步驟,一步步完成每一個(gè)細(xì)的操作,全部完成之后,問題即解決。5萬物皆為對(duì)象q現(xiàn)實(shí)世界中所有的事物都是對(duì)象q對(duì)象都具有某些特征,并具有某些行為特征:車型、載客人數(shù)、特征:姓名、年齡、學(xué)起始站點(diǎn)、終點(diǎn)、…歷、體重、…行為:?jiǎn)?dòng)、行駛、剎車、行為:學(xué)習(xí)、散步、跑開門、…步、吃飯
3、、…6對(duì)象的概念q對(duì)象可以是看得見、摸得著的有形的實(shí)體,如計(jì)算機(jī)、飛機(jī)、汽車等等;q對(duì)象也可以表示人或組織所起的作用,如治病、教學(xué)、生產(chǎn)等;q對(duì)象還可以表示事件,如各種事故、演出、戰(zhàn)斗、開會(huì)等;q對(duì)象更可以表示規(guī)則,如各種專家規(guī)則、約束條件、正則表達(dá)式等。7對(duì)象的兩個(gè)要素q屬性q用于描述對(duì)象靜態(tài)特性(結(jié)構(gòu)特性)的一個(gè)數(shù)據(jù)項(xiàng)。如描述一個(gè)人可用姓名、性別、身份證號(hào)等屬性。q方法(也稱服務(wù))q用于描述對(duì)象動(dòng)態(tài)特性(行為特性)的一個(gè)操作系列。如每個(gè)人都具有工作、學(xué)習(xí)等行為特性。8對(duì)象的封裝性能q對(duì)象就是一組屬性和相關(guān)的方法的集合。這是面向?qū)ο蠓椒ㄅc結(jié)構(gòu)化方法的
4、重大區(qū)別之一。q對(duì)象將數(shù)據(jù)和施加于數(shù)據(jù)上的操作打包成一個(gè)不可分割的最基本的模塊,使得僅有該類的有限個(gè)方法才可以操縱、改變這些數(shù)據(jù)。9類q在現(xiàn)實(shí)社會(huì)中,先有對(duì)象,后有類。q把眾多的事物歸納、劃分成類是我們?cè)谡J(rèn)識(shí)世界時(shí)經(jīng)常采用的方法。q分類所依據(jù)的原則是抽象,也就是忽略事物的非本質(zhì)特征,只注意那些與當(dāng)前目標(biāo)有關(guān)的本質(zhì)特征。q找出事物的共性并將具有共同性質(zhì)的事物劃分為同一個(gè)類。10抽象各種多邊形對(duì)象多邊形類屬性頂點(diǎn)抽象邊的顏色填充顏色方法繪制擦除移動(dòng)11類的概念q同一類中的對(duì)象有相同的屬性(也稱為成員變量,它描述該類的靜態(tài)特性或結(jié)構(gòu)特性)q同一類中的對(duì)象有相
5、同的方法(也稱服務(wù),它描述該類的行為特性或動(dòng)態(tài)特性)q同一類中的對(duì)象遵守相同的語義規(guī)則。(共同的約束或規(guī)則)12數(shù)據(jù)抽象q數(shù)據(jù)抽象是識(shí)別特定實(shí)體的屬性和方法的過程類屬性方法13類的定義q一旦定義類后,就可以用這種新類來創(chuàng)建該類型的對(duì)象。q類就是對(duì)象的模板(template)。q而對(duì)象就是類的一個(gè)實(shí)例(instance)。q類包含數(shù)據(jù)成員(屬性)和函數(shù)(方法)。q數(shù)據(jù)成員往往通過函數(shù)(方法)訪問的。q類是具有共同屬性和行為的對(duì)象的抽象。14類和對(duì)象數(shù)據(jù)或變量屬性或狀態(tài)方法操作或行為實(shí)例類對(duì)象抽象15類定義qJava中定義類的通用格式:classClass
6、Name{類的名稱typevariable1;…實(shí)例變量(字段)typevariableN;typemethodname1(parameter-list){//方法體}成員方法…typemethodnameN(parameter-list){//方法體}}16變量定義q定義實(shí)例變量(對(duì)象變量)在類Myclass中創(chuàng)建一個(gè)float型的變量aFloatclassMyClass{floataFloat;}q定義類變量(靜態(tài)變量)類變量是使用靜態(tài)關(guān)鍵字來聲明的classMyClass{staticintage;}17創(chuàng)建方法q方法一般的形式:accessty
7、pemethodname(parameter-list){//方法體}方法名稱參數(shù)列表,訪問修飾返回類型符,可選可選18對(duì)象作為參數(shù)q當(dāng)對(duì)象作為函數(shù)參數(shù)時(shí),在函數(shù)中只能改變?cè)搶?duì)象的狀態(tài)(屬性),但不能改變?cè)搶?duì)象的引用qJava中的參數(shù)傳遞類型是值傳遞19改變對(duì)象狀態(tài)classDemo{inta,b;Demo(inti,intj){a=i;b=j;}//可以在函數(shù)中改變對(duì)象狀態(tài)voidchangeState(Demoobj){obj.a=50;obj.b=40;}}20值傳遞voidswapObj(Demox,Demoy){Demotemp=y;y=x;
8、交換對(duì)象的引用x=temp;}Obj1obj1調(diào)用swapObj(obj1,obj2)obj2