版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
面向?qū)ο蟮乃枷敫攀鲇捎贘ava語(yǔ)言是面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,為編寫(xiě)出充分利用Java特點(diǎn)的高效程序,必須首先建立按照面向?qū)ο蟮姆椒▉?lái)認(rèn)知世界的思維方式。
課程目標(biāo)第2頁(yè),共119頁(yè),2024年2月25日,星期天了解對(duì)象;了解類(lèi)型;了解對(duì)象和類(lèi)型之間的關(guān)系本章重點(diǎn)第3頁(yè),共119頁(yè),2024年2月25日,星期天面向過(guò)程 程序=算法+數(shù)據(jù) 以數(shù)據(jù)為基礎(chǔ),通過(guò)算法計(jì)算數(shù)據(jù)面向?qū)ο?程序=對(duì)象+消息 萬(wàn)物皆為對(duì)象,對(duì)象通過(guò)消息相互作用面向過(guò)程與面向?qū)ο蟊容^第4頁(yè),共119頁(yè),2024年2月25日,星期天什么是面向?qū)ο蟛皇褂妹嫦驅(qū)ο竺枋鲆患虑嘟烦磁H?/p>
取出青椒500g,用刀切成細(xì)絲,過(guò)油取出牛肉300g,切丁,用醬油、酒、黑醋腌制30分鐘起油鍋、放入牛肉炒及青椒大火快炒1分半拿出淀粉、水調(diào)在一起,這個(gè)稱(chēng)為
芡汁。將芡汁倒入鍋中攪拌,會(huì)產(chǎn)生黏稠現(xiàn)象這叫芶芡完成。使用面向?qū)ο竺枋鲆患虑嘟烦磁H?/p>
青椒
數(shù)量:500g
處理:用刀切成細(xì)絲,過(guò)油
牛肉
數(shù)量:300g
處理:切丁,用醬油、酒、黑醋腌制
芡汁
製作:淀粉調(diào)上適量的水
芶芡:將芡汁倒入鍋中
青椒處理好、牛肉處理好、芡汁製作好,
放入鍋中快炒1分半後用芡汁芶芡即可。第5頁(yè),共119頁(yè),2024年2月25日,星期天什么是面向?qū)ο笄嘟烦磁H?/p>
青椒
數(shù)量:500g
處理:用刀切成細(xì)絲過(guò)油
牛肉
數(shù)量:300g
處理:切丁,用醬油、酒、
黑醋腌制
芡汁
製作:淀粉調(diào)上適量的水
芶芡:將芡汁倒入鍋中
青椒處理好、牛肉處理好、芡汁製作好,放入鍋中快炒1分半後用芡汁芶芡即可。先定好參與這件事的物品有哪些(這些物品叫做“對(duì)象”)再定義這些物品所需的數(shù)量及行為(這些數(shù)量及行為叫做
“屬性”與“方法”)接下來(lái)就可用物品間的互動(dòng)行為來(lái)描述整件事情是如何發(fā)生的。
(這部份的描述稱(chēng)為“主程序”)第6頁(yè),共119頁(yè),2024年2月25日,星期天什么是對(duì)象?對(duì)象由什么組成?對(duì)象有什么特性?對(duì)象觀(guān)第7頁(yè),共119頁(yè),2024年2月25日,星期天對(duì)象
(object)我們可以把生活所在的真實(shí)世界(RealWorld)當(dāng)作是由許多大小不同的對(duì)象所組成的。對(duì)象可以是有生命的個(gè)體,比如一個(gè)人或一只鳥(niǎo)。第8頁(yè),共119頁(yè),2024年2月25日,星期天對(duì)象也可以是無(wú)生命的個(gè)體,比如一輛汽車(chē)或一臺(tái)計(jì)算機(jī)。對(duì)象也可以是一件抽象的概念,如天氣的變化或鼠標(biāo)所產(chǎn)生的事件。
第9頁(yè),共119頁(yè),2024年2月25日,星期天萬(wàn)物皆對(duì)象現(xiàn)實(shí)是由實(shí)體組成的,所有實(shí)體皆為對(duì)象。對(duì)象是現(xiàn)實(shí)實(shí)體在軟件系統(tǒng)中的映射對(duì)象觀(guān)第10頁(yè),共119頁(yè),2024年2月25日,星期天對(duì)象的三要素對(duì)象的屬性(特征、狀態(tài)、組成)對(duì)象的行為(對(duì)象能完成的功能,用于改變狀態(tài)、發(fā)送消息)對(duì)象的標(biāo)識(shí)對(duì)象觀(guān)第11頁(yè),共119頁(yè),2024年2月25日,星期天生活中常見(jiàn)的對(duì)象:對(duì)象的名稱(chēng)對(duì)象的屬性(狀態(tài))對(duì)象的方法(行為)汽車(chē)速度、油量、所處的位置…加速、剎車(chē)、換擋…倉(cāng)庫(kù)結(jié)構(gòu)、容量、庫(kù)存…入庫(kù)、出庫(kù)、盤(pán)點(diǎn)…國(guó)家經(jīng)濟(jì)狀況、人口、地理位置…發(fā)展經(jīng)濟(jì)、戰(zhàn)爭(zhēng)、談判…發(fā)展經(jīng)濟(jì)、戰(zhàn)爭(zhēng)、談判…人五官、膚色、民族…運(yùn)動(dòng)、工作、學(xué)習(xí)…第12頁(yè),共119頁(yè),2024年2月25日,星期天類(lèi)(class)在真實(shí)世界里,有許多同“種類(lèi)”的對(duì)象。而這些同“種類(lèi)”的對(duì)象可被歸類(lèi)為一個(gè)“類(lèi)”。例如我們可將世界上所有的汽車(chē)歸類(lèi)為汽車(chē)類(lèi),所有的動(dòng)物歸為動(dòng)物類(lèi)。
動(dòng)物類(lèi)汽車(chē)類(lèi)第13頁(yè),共119頁(yè),2024年2月25日,星期天類(lèi)描述了一組有相同特性(屬性)和相同行為(方法)的對(duì)象。類(lèi)是現(xiàn)實(shí)世界中實(shí)體的抽象集合,是封裝了數(shù)據(jù)和操作的復(fù)雜的抽象數(shù)據(jù)類(lèi)型。什么是類(lèi)第14頁(yè),共119頁(yè),2024年2月25日,星期天類(lèi)和對(duì)象汽車(chē)類(lèi)有些共同的狀態(tài)(汽缸排氣量,排檔數(shù),顏色,輪胎數(shù)……)和行為(換檔,開(kāi)燈,開(kāi)冷氣……),但每一臺(tái)汽車(chē)個(gè)別的狀態(tài)及方法可不同于且獨(dú)立于其他汽車(chē)
。你的汽車(chē)只是這世界中許多汽車(chē)中的一個(gè)。我們就稱(chēng)你的汽車(chē)是汽車(chē)類(lèi)中的一個(gè)對(duì)象,也叫一個(gè)實(shí)例汽車(chē)類(lèi)
class)實(shí)例
instance)NEW你的車(chē)第15頁(yè),共119頁(yè),2024年2月25日,星期天
軟件開(kāi)發(fā)過(guò)程:具體—抽象—具體對(duì)象:劉麗靜態(tài)特征:劉麗女講師動(dòng)態(tài)特征:授課評(píng)職稱(chēng)類(lèi):教師
屬性:姓名性別職稱(chēng)服務(wù):授課評(píng)職稱(chēng)抽象實(shí)例化第16頁(yè),共119頁(yè),2024年2月25日,星期天類(lèi)和對(duì)象類(lèi)是具有共同屬性和行為的對(duì)象的抽象。對(duì)象是具體的,類(lèi)型是抽象的創(chuàng)建的是類(lèi)型,使用的是對(duì)象類(lèi)對(duì)象抽象實(shí)例化屬性或狀態(tài)操作或行為數(shù)據(jù)或變量方法第17頁(yè),共119頁(yè),2024年2月25日,星期天為什么要使用類(lèi)?采用簡(jiǎn)單數(shù)據(jù)類(lèi)型表示現(xiàn)實(shí)世界中的概念存在很大的局限性。例如:采用int型數(shù)據(jù)表示一個(gè)日期概念,需要使用3個(gè)變量:
intday,month,year;如果要表示2個(gè)人的生日,就要使用6個(gè)變量同時(shí)在使用日期概念時(shí)要同時(shí)對(duì)三個(gè)變量進(jìn)行訪(fǎng)問(wèn)而定義一個(gè)Date類(lèi)表示日期就方便的多了……第18頁(yè),共119頁(yè),2024年2月25日,星期天面向?qū)ο蟪绦蛟O(shè)計(jì)的重點(diǎn)是類(lèi)的設(shè)計(jì),而不是對(duì)象的設(shè)計(jì)。第19頁(yè),共119頁(yè),2024年2月25日,星期天最基本的觀(guān)點(diǎn):萬(wàn)物皆對(duì)象類(lèi)和對(duì)象的產(chǎn)生:具體---抽象----具體創(chuàng)建的是類(lèi)型,使用的是對(duì)象類(lèi)型是對(duì)象的抽象,對(duì)象是類(lèi)型的實(shí)例總結(jié)第20頁(yè),共119頁(yè),2024年2月25日,星期天第6章類(lèi)與對(duì)象第21頁(yè),共119頁(yè),2024年2月25日,星期天本章學(xué)習(xí)目標(biāo)掌握類(lèi)的定義與創(chuàng)建對(duì)象的方法掌握方法及構(gòu)造方法重載掌握訪(fǎng)問(wèn)控制修飾符和static的用法第22頁(yè),共119頁(yè),2024年2月25日,星期天本講內(nèi)容類(lèi)的定義創(chuàng)建對(duì)象構(gòu)造方法第23頁(yè),共119頁(yè),2024年2月25日,星期天第一個(gè)例子:福娃說(shuō)話(huà)publicclassDoll{/***福娃的名字*/privateStringname;publicDoll(Stringname){=name;}
/***福娃說(shuō)話(huà)*/publicvoidspeak(){System.out.println(name);}}publicclassAppMain{
/***應(yīng)用程序的入口方法*/publicstaticvoidmain(Stringargs[]){Dollbeibei=newDoll("貝貝");//創(chuàng)建福娃貝貝
Dolljingjing=newDoll("晶晶");//創(chuàng)建福娃晶晶
Dollhuanhuan=newDoll("歡歡");//創(chuàng)建福娃歡歡
Dollyingying=newDoll("迎迎");//創(chuàng)建福娃迎迎
Dollnini=newDoll("妮妮");//創(chuàng)建福娃妮妮
beibei.speak();//福娃貝貝說(shuō)話(huà)
jingjing.speak();//福娃晶晶說(shuō)話(huà)
huanhuan.speak();//福娃歡歡說(shuō)話(huà)
yingying.speak();//福娃迎迎說(shuō)話(huà)
nini.speak();//福娃妮妮說(shuō)話(huà)
}}類(lèi)聲明類(lèi)屬性(類(lèi)成員變量)類(lèi)方法main函數(shù)構(gòu)造方法第24頁(yè),共119頁(yè),2024年2月25日,星期天封裝是指一個(gè)對(duì)象由屬性和方法的有機(jī)體組成,可表示為:封裝的實(shí)體=數(shù)據(jù)+方法(行為)封裝可以避免一個(gè)對(duì)象的數(shù)據(jù)成員被不正當(dāng)?shù)卮嫒?,以達(dá)到信息隱藏和保護(hù)對(duì)象的效果對(duì)象就是一組變量和相關(guān)方法的封裝體,封裝實(shí)現(xiàn)了對(duì)象的模塊化和信息隱藏,
封裝的概念第25頁(yè),共119頁(yè),2024年2月25日,星期天
類(lèi)就是一種數(shù)據(jù)類(lèi)型,對(duì)象就是屬于某種類(lèi)型的一個(gè)變量。類(lèi)是對(duì)象的藍(lán)圖,這個(gè)藍(lán)圖就像汽車(chē)制造廠(chǎng)制造汽車(chē)的圖紙一樣,一種車(chē)型的圖紙,可以生產(chǎn)成千上萬(wàn)輛相同型號(hào)的汽車(chē)。同樣在程序設(shè)計(jì)中,當(dāng)定義好一個(gè)類(lèi)以后可以以該類(lèi)為藍(lán)圖創(chuàng)建很多實(shí)例對(duì)象。電視機(jī)的狀態(tài)有種類(lèi)、品牌、外觀(guān)、大小,行為有打開(kāi)、關(guān)閉、調(diào)整音量
類(lèi)和對(duì)象的概念第26頁(yè),共119頁(yè),2024年2月25日,星期天類(lèi)的定義示例:一個(gè)描述點(diǎn)對(duì)象的類(lèi)屬性x、y坐標(biāo)方法修改獲取x、y坐標(biāo)[修飾符]class類(lèi)名{屬性定義(聲明)方法定義(聲明)}第27頁(yè),共119頁(yè),2024年2月25日,星期天屬性定義[修飾符]類(lèi)型屬性名=[初值];類(lèi)型可以是任何類(lèi)型,包括類(lèi)。屬性有默認(rèn)值。屬性是指在類(lèi)體中所有方法外定義的變量第28頁(yè),共119頁(yè),2024年2月25日,星期天屬性默認(rèn)值數(shù)據(jù)類(lèi)型
默認(rèn)值
boolean
false
char
‘\u0000’
整形(byte,short,int,long)
0
浮點(diǎn)型(float,double)
+0.0f或+0.0d
引用類(lèi)型
null
第29頁(yè),共119頁(yè),2024年2月25日,星期天方法定義[修飾符]返回值類(lèi)型方法名(參數(shù)列表){語(yǔ)句(組);return語(yǔ)句;}第30頁(yè),共119頁(yè),2024年2月25日,星期天練習(xí)定義一個(gè)三角形類(lèi)Triangle,描述三角形對(duì)象.三角形有兩個(gè)屬性底和高,有幾個(gè)方法:一個(gè)setSide用于修改底的值,一個(gè)getSide用于獲取底的值;一個(gè)setHeight用于修改高的值,一個(gè)getHeight用于獲取高的值;還有一個(gè)findArea方法用于計(jì)算三角形的面積。第31頁(yè),共119頁(yè),2024年2月25日,星期天練習(xí)定義一個(gè)圓類(lèi)Circle,描述圓對(duì)象。圓有一個(gè)屬性radius表示半徑,有三個(gè)方法:一個(gè)setR用于修改半徑的值,一個(gè)getR用于獲取半徑的值,還有一個(gè)findArea方法用于計(jì)算圓的面積。第32頁(yè),共119頁(yè),2024年2月25日,星期天對(duì)象和類(lèi)如果將對(duì)象比作汽車(chē),類(lèi)就是汽車(chē)的設(shè)計(jì)圖紙。對(duì)象和類(lèi)的關(guān)系:類(lèi)是用來(lái)定義對(duì)象的屬性和方法的模板??梢詮囊粋€(gè)類(lèi)中創(chuàng)建許多(對(duì)象)實(shí)例,創(chuàng)建一個(gè)實(shí)例被稱(chēng)為實(shí)例化。對(duì)象和實(shí)例兩個(gè)詞通??梢曰Q。第33頁(yè),共119頁(yè),2024年2月25日,星期天對(duì)象的創(chuàng)建(1)聲明對(duì)象聲明該類(lèi)類(lèi)型的一個(gè)變量,這里并沒(méi)有定義一個(gè)對(duì)象,它只是一個(gè)能夠引用對(duì)象的變量,或稱(chēng)為引用類(lèi)型變量
Shirtmyshirt;第34頁(yè),共119頁(yè),2024年2月25日,星期天myshirt對(duì)象創(chuàng)建的內(nèi)存模型第35頁(yè),共119頁(yè),2024年2月25日,星期天(2)創(chuàng)建對(duì)象創(chuàng)建一個(gè)對(duì)象,并把對(duì)該對(duì)象的引用賦值給該變量,該對(duì)象稱(chēng)為類(lèi)的實(shí)例
myshirt=newShirt();第36頁(yè),共119頁(yè),2024年2月25日,星期天myshirtShirt()x對(duì)象創(chuàng)建的內(nèi)存模型包含兩部工作:1、創(chuàng)建堆內(nèi)存對(duì)象2、將對(duì)象首地址給myshirt第37頁(yè),共119頁(yè),2024年2月25日,星期天試分析下面的兩個(gè)圖第38頁(yè),共119頁(yè),2024年2月25日,星期天第39頁(yè),共119頁(yè),2024年2月25日,星期天引用類(lèi)型總結(jié)(了解)類(lèi)引用類(lèi)型使用類(lèi)定義的變量=引用類(lèi)型變量存儲(chǔ)32位長(zhǎng)的引用,用于引用對(duì)象引用類(lèi)型變量=對(duì)象名第40頁(yè),共119頁(yè),2024年2月25日,星期天創(chuàng)建對(duì)象創(chuàng)建對(duì)象的語(yǔ)法:類(lèi)名對(duì)象名=new
類(lèi)名();調(diào)用對(duì)象屬性和方法的語(yǔ)法:對(duì)象名.屬性名對(duì)象名.方法名(實(shí)參列表)看一個(gè)示例:MpointTest_4.3.java第41頁(yè),共119頁(yè),2024年2月25日,星期天思考
設(shè)A為已定義的類(lèi)名,下列聲明A類(lèi)的對(duì)象a的語(yǔ)句中正確的是()。
A)Aa=newclass();B)publicAa=A();C)publicAa=newA();D)aA;第42頁(yè),共119頁(yè),2024年2月25日,星期天編程練習(xí)----設(shè)計(jì)電腦類(lèi)設(shè)計(jì)一個(gè)電腦類(lèi)“制造”(即創(chuàng)建)該電腦類(lèi)的兩個(gè)實(shí)例,一個(gè)實(shí)例對(duì)象表示自己的電腦,一個(gè)實(shí)例對(duì)象表示張華的電腦,然后輸出每臺(tái)電腦的配置情況。提示:電腦的屬性可以有顏色,品牌,型號(hào),硬盤(pán)容量,內(nèi)存容量等。方法可以有開(kāi)機(jī),運(yùn)行軟件,關(guān)機(jī),聯(lián)網(wǎng),輸出配置情況等。第43頁(yè),共119頁(yè),2024年2月25日,星期天構(gòu)造方法實(shí)例化對(duì)象就是給對(duì)象分配內(nèi)存空間,并將對(duì)象初始化,對(duì)象的初始化是由類(lèi)的構(gòu)造函數(shù)來(lái)完成的。對(duì)象的初始化:就是給對(duì)象的屬性字段賦初值。對(duì)象在創(chuàng)建過(guò)程中,其實(shí)有些屬性是與生俱來(lái)的,如一個(gè)人的性別、膚色、父母等。因此在對(duì)象生成的時(shí)候就進(jìn)行初始化。則更加自然與方便。構(gòu)造方法就是在一個(gè)類(lèi)的對(duì)象創(chuàng)建后自動(dòng)對(duì)其屬性進(jìn)行初始化的一種特殊方法。第44頁(yè),共119頁(yè),2024年2月25日,星期天構(gòu)造方法比如:newCircle()就調(diào)用了無(wú)參的構(gòu)造方法。示例:Circlec=newCircle();第45頁(yè),共119頁(yè),2024年2月25日,星期天構(gòu)造方法語(yǔ)法[修飾符]類(lèi)名(參數(shù)列表){//具體實(shí)現(xiàn);}第46頁(yè),共119頁(yè),2024年2月25日,星期天構(gòu)造方法的作用構(gòu)造方法一般用來(lái)初始化對(duì)象,比如可通過(guò)構(gòu)造方法給對(duì)象的屬性賦初值.第47頁(yè),共119頁(yè),2024年2月25日,星期天構(gòu)造方法-要點(diǎn)構(gòu)造方法名與類(lèi)名一致構(gòu)造方法沒(méi)有返回值類(lèi)型如果沒(méi)有定義構(gòu)造方法,系統(tǒng)會(huì)生成一個(gè)默認(rèn)的無(wú)參的構(gòu)造方法比如:Point(inta,intb){ x=a; y=b;}第48頁(yè),共119頁(yè),2024年2月25日,星期天方法的重載重載:一個(gè)類(lèi)中如果同時(shí)存在多個(gè)方法名相同,參數(shù)列表不同的方法,則他們之間的關(guān)系稱(chēng)為重載。第49頁(yè),共119頁(yè),2024年2月25日,星期天voidoutput1(){System.out.println("thisisfirstmethod");}voidoutput1(Strings){System.out.println("thisissecondmethod"+s);
}
classexample1{publicstaticvoidmain(Stringargs[]){OutTestres=newOutTest(); res.output1(); res.output1("haha"); }}第50頁(yè),共119頁(yè),2024年2月25日,星期天使用重載常犯的錯(cuò)誤:voidsetCircle(Strings);booleansetCircle(Stringstr);這兩個(gè)方法的參數(shù)個(gè)數(shù)和類(lèi)型完全相同,但返回類(lèi)型不同!類(lèi)中不能根據(jù)返回值不同來(lái)定義相同的方法第51頁(yè),共119頁(yè),2024年2月25日,星期天要點(diǎn):方法名相同、參數(shù)列表不同
參數(shù)列表不同包括:參數(shù)數(shù)目不同,參數(shù)出現(xiàn)順序不同,參數(shù)的類(lèi)型不同.注意:方法重載時(shí)返回值類(lèi)型可以不同,所以不能根據(jù)返回值類(lèi)型不同來(lái)判斷方法是否發(fā)生重載,只能根據(jù)參數(shù)列表來(lái)區(qū)分第52頁(yè),共119頁(yè),2024年2月25日,星期天構(gòu)造方法-要點(diǎn)如果在定義類(lèi)時(shí)定義了帶參的構(gòu)造方法,系統(tǒng)將不會(huì)提供無(wú)參的構(gòu)造方法構(gòu)造方法只能用new在創(chuàng)建對(duì)象時(shí)調(diào)用,不能通過(guò)對(duì)象名或方法名調(diào)用第53頁(yè),共119頁(yè),2024年2月25日,星期天練習(xí)1.設(shè)i,j為類(lèi)X中定義的int型屬性,下列X類(lèi)構(gòu)造方法中不正確的是()。A)voidX(intk){i=k;}B)X(intk){i=k;}C)X(intm,intn){i=m;j=n;}D)X(){i=0;j=0;}第54頁(yè),共119頁(yè),2024年2月25日,星期天練習(xí)2.有一個(gè)類(lèi)A,以下為其構(gòu)造方法的聲明,其中正確的是()。A)publicA(intx){...}B)staticA(intx){...}C)publica(intx){...}D)voidA(intx){...}第55頁(yè),共119頁(yè),2024年2月25日,星期天練習(xí)
在前面的圓Circle類(lèi)里,定義兩個(gè)構(gòu)造方法,一個(gè)是無(wú)參數(shù)的構(gòu)造方法,另一個(gè)是帶參的構(gòu)造方法,在測(cè)試類(lèi)中分別用兩個(gè)構(gòu)造方法創(chuàng)建半徑為5和半徑為10的圓,求圓的面積并打印出來(lái).第56頁(yè),共119頁(yè),2024年2月25日,星期天練習(xí)定義一個(gè)學(xué)生類(lèi),包含姓名和性別兩個(gè)屬性,為該類(lèi)提供三個(gè)構(gòu)造方法為屬性賦值,構(gòu)造方法分別為無(wú)參、帶一個(gè)參數(shù)和帶兩個(gè)參數(shù),創(chuàng)建toString方法輸出學(xué)生信息。在主方法中分別用3個(gè)構(gòu)造方法創(chuàng)建3個(gè)對(duì)象,調(diào)用toString方法輸出學(xué)生信息。第57頁(yè),共119頁(yè),2024年2月25日,星期天總結(jié)如何定義類(lèi)?如何創(chuàng)建對(duì)象?第58頁(yè),共119頁(yè),2024年2月25日,星期天方法第59頁(yè),共119頁(yè),2024年2月25日,星期天創(chuàng)建方法例如:publicstaticintmax(intnum1,intnum2){if(num1>num2)returnnum1;elsereturnnum2;}第60頁(yè),共119頁(yè),2024年2月25日,星期天創(chuàng)建方法修飾符是可選的,它指定了方法的屬性并且告訴編譯器該方法可以如何調(diào)用。方法可以返回一個(gè)值。返回值類(lèi)型是方法要返回的值的數(shù)據(jù)類(lèi)型。若方法不返回值,則返回值類(lèi)型為關(guān)鍵字void。除構(gòu)造方法外,所有的方法都要求有返回值類(lèi)型。方法可以有一個(gè)參數(shù)列表,按方法的規(guī)范稱(chēng)為形式參數(shù)。當(dāng)方法被調(diào)用時(shí),形式參數(shù)用變量或數(shù)據(jù)替換,這些變量或數(shù)據(jù)稱(chēng)為實(shí)際參數(shù)。參數(shù)是可選的。方法體包括一個(gè)定義方法做什么的語(yǔ)句集合。第61頁(yè),共119頁(yè),2024年2月25日,星期天創(chuàng)建方法有返回值的方法要求有關(guān)鍵字return,而返回值類(lèi)型為void的方法則可以沒(méi)有。返回值類(lèi)型為void類(lèi)型的方法也可以使用return語(yǔ)句,用來(lái)終止方法并返回該方法的調(diào)用者。執(zhí)行return語(yǔ)句后方法終止。第62頁(yè),共119頁(yè),2024年2月25日,星期天調(diào)用方法根據(jù)方法是否有返回值,通常有兩種途徑調(diào)用方法:如果方法返回一個(gè)值,對(duì)方法的調(diào)用通常就當(dāng)做處理一個(gè)值。如:intlarger=max(3,4);如果方法返回void,對(duì)方法的調(diào)用必定是一條語(yǔ)句。如:System.out.println(“WelcometoJava!”);第63頁(yè),共119頁(yè),2024年2月25日,星期天調(diào)用方法當(dāng)程序調(diào)用方法時(shí),程序控制轉(zhuǎn)移到了被調(diào)用的方法中。執(zhí)行return語(yǔ)句或遇到方法結(jié)束的右括號(hào)時(shí),被調(diào)用方法將程序控制還給調(diào)用者。例如: voidmethod1() {System.out.println(method2());} intmethod2() {inti=method3();returni;} intmethod3() {return10;}第64頁(yè),共119頁(yè),2024年2月25日,星期天調(diào)用方法例測(cè)試max方法這個(gè)例子演示怎樣創(chuàng)建和調(diào)用max方法。源程序:TestMax.java第65頁(yè),共119頁(yè),2024年2月25日,星期天參數(shù)傳遞方法的威力是它處理參數(shù)的能力。調(diào)用方法時(shí),需要提供實(shí)參,它們必須在類(lèi)型、次序和數(shù)量上與方法中所對(duì)應(yīng)的形參匹配,這叫做參數(shù)順序匹配。第66頁(yè),共119頁(yè),2024年2月25日,星期天參數(shù)傳遞例如:voidnPrintln(Stringmessage,intn){for(inti=0;i<n;i++)System.out.println(message);}語(yǔ)句nPrintln(“Hello”,3)把實(shí)參“Hello”傳給形參message,把3傳給n,然后打印3遍“Hello”。語(yǔ)句nPrintln(3,”Hello”)就是錯(cuò)誤的,因?yàn)閷?shí)參和形參不匹配。第67頁(yè),共119頁(yè),2024年2月25日,星期天參數(shù)按值傳遞在調(diào)用帶參數(shù)的方法時(shí),實(shí)參的值復(fù)制到方法中稱(chēng)為按值傳遞。無(wú)論方法中的形參怎樣變化,方法外的實(shí)參不受影響。例4.2測(cè)試按值傳遞
本程序證實(shí)方法中的參數(shù)傳遞是按值傳遞的。 源程序:TestPassByValue.java第68頁(yè),共119頁(yè),2024年2月25日,星期天練習(xí)編寫(xiě)方法,求三個(gè)整數(shù)的平均值,平均值的類(lèi)型要求為雙精度浮點(diǎn)型。在main方法中測(cè)試這個(gè)方法。第69頁(yè),共119頁(yè),2024年2月25日,星期天重載方法方法重載就是指,兩個(gè)方法具有相同名稱(chēng)和不同的參數(shù)形式。方法名與參數(shù)形式合稱(chēng)方法頭標(biāo)志。調(diào)用方法時(shí),Java運(yùn)行系統(tǒng)能夠根據(jù)方法頭標(biāo)志決定調(diào)用哪個(gè)方法。重載方法可使程序清晰易讀。執(zhí)行相似任務(wù)的方法應(yīng)該給予相同的名稱(chēng)。被重載的方法必須具有不同的參數(shù)形式。不能基于不同的修飾符或返回值類(lèi)型重載方法。第70頁(yè),共119頁(yè),2024年2月25日,星期天重載方法例4.3重載max方法doublemax(doublenum1,doublenum2){if(num1>num2)returnnum1;elsereturnnum2;}與前面的max方法同名,但參數(shù)形式不同。第71頁(yè),共119頁(yè),2024年2月25日,星期天練習(xí)重載上一個(gè)求整數(shù)平均值的方法,實(shí)現(xiàn)求三個(gè)雙精度浮點(diǎn)數(shù)的平均值。在main方法中測(cè)試這個(gè)重載的方法與之前整數(shù)平均值的方法第72頁(yè),共119頁(yè),2024年2月25日,星期天方法抽象方法抽象是把方法的應(yīng)用同實(shí)現(xiàn)分離開(kāi)來(lái)。在不知道方法如何實(shí)現(xiàn)的情況下,用戶(hù)也可以使用方法。如果要改變方法的實(shí)現(xiàn),只要不改變方法頭標(biāo)志,提供給用戶(hù)的程序就不受影響。第73頁(yè),共119頁(yè),2024年2月25日,星期天例子一個(gè)根據(jù)員工基本計(jì)算工資的程序:publicclassTest{publicstaticvoidmain(String[]args){ intlevel=0; System.out.println(“等級(jí)”+level+”的工資是:”+salary(level));}}第74頁(yè),共119頁(yè),2024年2月25日,星期天例子salary方法定義:staticintsalary(intlevel){switch(level){ case0:return1000; case1:return2000; case2:return2500; default:return0; }}第75頁(yè),共119頁(yè),2024年2月25日,星期天練習(xí)編寫(xiě)方法求一個(gè)double數(shù)值的向右取整,再寫(xiě)一個(gè)方法求它向左取整。比如:5.4的向右取整為6,而向左取整為5;而5.0的向右取整為5,向左取整也為5。寫(xiě)一個(gè)方法計(jì)算一個(gè)整數(shù)各位數(shù)字的和,使用下面的方法說(shuō)明:publicstaticintsumDigits(longn)比如:sumDigits(234)返回2+3+4=9第76頁(yè),共119頁(yè),2024年2月25日,星期天變量的作用域指變量可以在程序中引用的范圍。在方法中定義的變量稱(chēng)為局部變量。
局部變量的作用域從聲明變量的地方開(kāi)始,直到包含該變量的塊結(jié)束為止。參數(shù)是一個(gè)局部變量,作用域涵蓋整個(gè)方法。for循環(huán)頭中初始的變量,作用域是整個(gè)for循環(huán)可在同一個(gè)方法不同塊里聲明同名局部變量。
不能在嵌套或同一塊中兩次聲明同一局部變量。第77頁(yè),共119頁(yè),2024年2月25日,星期天關(guān)于Math教材p137第78頁(yè),共119頁(yè),2024年2月25日,星期天練習(xí)蒙特卡羅模擬使用隨機(jī)數(shù)和概率來(lái)解決問(wèn)題。這個(gè)方法在數(shù)學(xué)、物理、化學(xué)和財(cái)經(jīng)方面有很廣的應(yīng)用。使用蒙特卡羅模擬來(lái)估算pai值.為了使用蒙特卡羅方法來(lái)估算pai值,畫(huà)出一個(gè)圓的外接正方形,假設(shè)這個(gè)圓的半徑為1。那么圓面積就是pai而外接正方形的面積是4。隨機(jī)產(chǎn)生正方形中的一個(gè)點(diǎn)。該點(diǎn)落在這個(gè)圓內(nèi)的概率為circleArea/squareArea(圓面積/正方形面積)=pai/4.編寫(xiě)程序,在正方形內(nèi)隨機(jī)產(chǎn)生10000個(gè)點(diǎn),100000個(gè)點(diǎn)和1000000個(gè)點(diǎn),用numberOfHits表示落在圓內(nèi)的點(diǎn)。由此求出pai的近似值。第79頁(yè),共119頁(yè),2024年2月25日,星期天幾個(gè)例題教材p131最大公約數(shù)素?cái)?shù)第80頁(yè),共119頁(yè),2024年2月25日,星期天本節(jié)課內(nèi)容包訪(fǎng)問(wèn)控制修飾符static修飾符第81頁(yè),共119頁(yè),2024年2月25日,星期天Java中允許將多個(gè)類(lèi)收集在一起成為一組,稱(chēng)為包(package)。聲明包的方法(將類(lèi)放入包中)package包名稱(chēng);例如:packagech04;示例:A.java定義包(package)注意,package必須寫(xiě)在程序的第一條第82頁(yè),共119頁(yè),2024年2月25日,星期天包(package)為什么使用包?主要原因是防止兩位程序員取了相同的類(lèi)別名稱(chēng),包嵌套的層次可以用來(lái)保證類(lèi)名的唯一性,避免同名類(lèi)沖突。第83頁(yè),共119頁(yè),2024年2月25日,星期天包與文件目錄Java要求包名與文件系統(tǒng)的目錄結(jié)構(gòu)一一對(duì)應(yīng)。一個(gè)包實(shí)際上是包含類(lèi)字節(jié)碼的目錄package.neusoft.graphics;classCircle {…..}Circle.java
Circle.classcneduneusoftgraphicsCircle.class第84頁(yè),共119頁(yè),2024年2月25日,星期天使用包中的類(lèi)使用其他包中的public類(lèi)常用是:關(guān)鍵字import包名.類(lèi)名;例:importjava.util.Scanner;示例:AA.java
AATest.java注意:只能引入其他包中的public類(lèi)第85頁(yè),共119頁(yè),2024年2月25日,星期天注意也可以引入整個(gè)包例如:importjava.util.*;注意:*表示引入一個(gè)單獨(dú)包下的所有類(lèi),而不是引入所有以java.util為前綴的所有包。第86頁(yè),共119頁(yè),2024年2月25日,星期天包注意:package必須是第一條語(yǔ)句只能使用其他包中的public類(lèi)如果一個(gè)程序中使用兩個(gè)包中的類(lèi)同名,在使用類(lèi)名前加上包名前綴第87頁(yè),共119頁(yè),2024年2月25日,星期天例如:
java.util和java.sql包中都有一個(gè)Date類(lèi),當(dāng)程序如下所寫(xiě)時(shí)importjava.util.*;importjava.sql.*;
使用Date時(shí),如定義Datetody;是錯(cuò)誤的第88頁(yè),共119頁(yè),2024年2月25日,星期天這時(shí)需在類(lèi)前加完整的包名,如:java.util.Datedeadline=newjava.util.Date(10000)java.sql.Datetoday=newjava.sql.Date(10000)所以,當(dāng)類(lèi)放在有名包中時(shí),類(lèi)的全稱(chēng)應(yīng)該是包名.類(lèi)名.第89頁(yè),共119頁(yè),2024年2月25日,星期天練習(xí)定義一個(gè)類(lèi)A,放到pack1包中;定義一個(gè)類(lèi)B,放到pack2包中;在類(lèi)B中定義main方法,在main方法中創(chuàng)建類(lèi)A的對(duì)象。觀(guān)察:兩個(gè)類(lèi)的字節(jié)碼文件的位置第90頁(yè),共119頁(yè),2024年2月25日,星期天通過(guò)前面的練習(xí),看下面的注意(了解)當(dāng)源程序沒(méi)有指定包的時(shí)候,默認(rèn)這樣的程序都是放在默認(rèn)包中,或稱(chēng)無(wú)名包。
無(wú)名包中的所有類(lèi)都可以互相引用;但無(wú)名包中的類(lèi)是不能被有名包中的類(lèi)引用,而有名包中的類(lèi)可以被無(wú)名包中的類(lèi)引用第91頁(yè),共119頁(yè),2024年2月25日,星期天訪(fǎng)問(wèn)控制修飾符類(lèi)的訪(fǎng)問(wèn)控制修飾符public:包內(nèi)外都可訪(fǎng)問(wèn)默認(rèn):只能包內(nèi)訪(fǎng)問(wèn)示例:AA.javaAATest.java第92頁(yè),共119頁(yè),2024年2月25日,星期天訪(fǎng)問(wèn)控制修飾符
public:用它定義的類(lèi)、方法和屬性,所有程序都可以訪(fǎng)問(wèn)。
protected:用它定義的方法或?qū)傩栽谕粋€(gè)包中的類(lèi)可訪(fǎng)問(wèn),或者在不同包中某類(lèi)的子類(lèi)可訪(fǎng)問(wèn)。默認(rèn)修飾符:即類(lèi)、方法和屬性前沒(méi)有修飾符的時(shí)候,那么該類(lèi)、方法和屬性可以被同一個(gè)包中的任何類(lèi)訪(fǎng)問(wèn)。private:用它定義的方法或?qū)傩?,只能由定義該方法的類(lèi)訪(fǎng)問(wèn),而其他類(lèi)不能訪(fǎng)問(wèn)第93頁(yè),共119頁(yè),2024年2月25日,星期天類(lèi)與屬性、方法的訪(fǎng)問(wèn)修飾符public缺省protectedprivate類(lèi)√√屬性√√√√方法√√√√第94頁(yè),共119頁(yè),2024年2月25日,星期天被不同修飾符修飾的屬性和方法與被訪(fǎng)問(wèn)關(guān)系類(lèi)屬性和方法同一類(lèi)同一包其他包publicpublic√√√protected√√子類(lèi)可訪(fǎng)問(wèn)缺省√√private√缺省public√√protected√√缺省√√private√例:AA414.java
AA414Test.java
第95頁(yè),共119頁(yè),2024年2月25日,星期天注意:訪(fǎng)問(wèn)控制修飾符不能修飾方法中的局部變量,可以修飾屬性。在方法內(nèi)部訪(fǎng)問(wèn)控制修飾符會(huì)引起編譯錯(cuò)誤。大多數(shù)情況下,構(gòu)造方法應(yīng)該是public的。但是,如果想防止用戶(hù)創(chuàng)建類(lèi)的實(shí)例,可以使用私有的構(gòu)造方法。第96頁(yè),共119頁(yè),2024年2月25日,星期天訪(fǎng)問(wèn)控制修飾符建議方法和構(gòu)造方法一般為public屬性一般為private對(duì)私有屬性的訪(fǎng)問(wèn)通過(guò)訪(fǎng)問(wèn)器方法完成(set方法和get方法)第97頁(yè),共119頁(yè),2024年2月25日,星期天訪(fǎng)問(wèn)器方法對(duì)象不能直接訪(fǎng)問(wèn)私有域,但是用戶(hù)常常需要檢索和修改數(shù)據(jù)域。為了能夠訪(fǎng)問(wèn)數(shù)據(jù)域,可以為私有數(shù)據(jù)域添加讀取方法和設(shè)置方法,這些方法稱(chēng)為訪(fǎng)問(wèn)器方法。第98頁(yè),共119頁(yè),2024年2月25日,星期天訪(fǎng)問(wèn)器方法設(shè)置方法voidset屬性名(屬性類(lèi)型的參數(shù))比如:對(duì)屬性radiusvoidsetRadius(doubleradius)獲取方法屬性類(lèi)型get屬性名()比如:doublegetRadius()例Circle.java第99頁(yè),共119頁(yè),2024年2月25日,星期天static靜態(tài)屬性用static修飾的屬性,也稱(chēng)為類(lèi)屬性用于描述一類(lèi)對(duì)象共享的屬性比如:?jiǎn)T工的最低工資,學(xué)生的學(xué)校名稱(chēng)等等可通過(guò)類(lèi)名直接調(diào)用,也可通過(guò)對(duì)象調(diào)用示例:EmpTest_415.java第100頁(yè),共119頁(yè),2024年2月25日,星期天static靜態(tài)方法用static修飾的方法,也叫類(lèi)方法靜態(tài)方法中不能訪(fǎng)問(wèn)非靜態(tài)成員靜態(tài)方法在類(lèi)加載的時(shí)候加載,當(dāng)我們?cè)陟o態(tài)方法中調(diào)用非靜態(tài)成員時(shí),因?yàn)槠湮幢环峙淇臻g,因此不能使用。第101頁(yè),共119頁(yè),2024年2月25日,星期天要點(diǎn)創(chuàng)建靜態(tài)屬性和靜態(tài)方法在第一次使用類(lèi)的時(shí)候創(chuàng)建,所有類(lèi)的對(duì)象共享非靜態(tài)屬性和非靜態(tài)方法在創(chuàng)建對(duì)象的時(shí)候創(chuàng)建,每個(gè)對(duì)象之間獨(dú)立第102頁(yè),共119頁(yè),2024年2月25日,星期天要點(diǎn)使用在類(lèi)外,靜態(tài)屬性和靜態(tài)方法可以通過(guò)類(lèi)名直接調(diào)用,也可以通過(guò)對(duì)象名調(diào)用。在類(lèi)外,非靜態(tài)屬性和非靜態(tài)方法只能通過(guò)對(duì)象名調(diào)用。第103頁(yè),共119頁(yè),2024年2月
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版食堂原材料供應(yīng)與質(zhì)量保證合同3篇
- 二零二五年度個(gè)人住房貸款擔(dān)保合同范本3篇
- 家居建材行業(yè)廣告總結(jié)
- 二零二五年度戶(hù)外運(yùn)動(dòng)裝備售后維修服務(wù)協(xié)議3篇
- 二零二五版?zhèn)€人住宅二手房居住權(quán)買(mǎi)賣(mài)與室內(nèi)空氣質(zhì)量檢測(cè)合同4篇
- 2025年度個(gè)人二手房交易貸款服務(wù)協(xié)議2篇
- 2025版租賃合同提前終止及解除后物業(yè)管理責(zé)任及費(fèi)用承擔(dān)協(xié)議3篇
- 二零二五年字畫(huà)藝術(shù)品私人定制合同范本3篇
- 二零二五年度公共安全系統(tǒng)購(gòu)銷(xiāo)協(xié)議3篇
- 食品配送衛(wèi)生安全規(guī)范
- 【可行性報(bào)告】2023年電動(dòng)自行車(chē)項(xiàng)目可行性研究分析報(bào)告
- 五月天歌詞全集
- 商品退換貨申請(qǐng)表模板
- 實(shí)習(xí)單位鑒定表(模板)
- 六西格瑪(6Sigma)詳解及實(shí)際案例分析
- 機(jī)械制造技術(shù)-成都工業(yè)學(xué)院中國(guó)大學(xué)mooc課后章節(jié)答案期末考試題庫(kù)2023年
- 數(shù)字媒體應(yīng)用技術(shù)專(zhuān)業(yè)調(diào)研方案
- 2023年常州市新課結(jié)束考試九年級(jí)數(shù)學(xué)試卷(含答案)
- 正常分娩 分娩機(jī)制 助產(chǎn)學(xué)課件
- 廣東縣級(jí)農(nóng)商銀行聯(lián)社高管候選人公開(kāi)競(jìng)聘筆試有關(guān)事項(xiàng)上岸提分題庫(kù)3套【500題帶答案含詳解】
- 中國(guó)成人住院患者高血糖管理目標(biāo)專(zhuān)家共識(shí)課件
評(píng)論
0/150
提交評(píng)論