Java面向?qū)ο缶幊袒A(chǔ)_第1頁
Java面向?qū)ο缶幊袒A(chǔ)_第2頁
Java面向?qū)ο缶幊袒A(chǔ)_第3頁
Java面向?qū)ο缶幊袒A(chǔ)_第4頁
Java面向?qū)ο缶幊袒A(chǔ)_第5頁
已閱讀5頁,還剩69頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第3章Java面向?qū)ο缶幊袒A(chǔ)3.1面向?qū)ο筌浖_發(fā)概述3.2Java的類3.3構(gòu)造方法與對象的創(chuàng)建3.4定義和使用Java的方法3.5內(nèi)部類與匿名類學(xué)習(xí)要點(diǎn):1.理解面向?qū)ο蟪绦蛟O(shè)計的基本概念2.理解Java包中類的基本概念,掌握定義Java類和創(chuàng)建對象的方法3.掌握構(gòu)造函數(shù):構(gòu)造函數(shù)的特點(diǎn)、構(gòu)造函數(shù)的定義4.掌握方法的定義,理解方法的形式參數(shù)與實(shí)際參數(shù)、方法的返回值、方法的調(diào)用過程5.了解內(nèi)部類和匿名類的定義與使用方式3.1面向?qū)ο筌浖_發(fā)概述面向?qū)ο蟪绦蛟O(shè)計是一種運(yùn)用對象、類、繼承、封裝、聚合、關(guān)聯(lián)、消息、多態(tài)性等概念來構(gòu)造系統(tǒng)的軟件開發(fā)方法,其核心思想是用面向?qū)ο蟮木幊陶Z言把現(xiàn)實(shí)世界的實(shí)體描述成計算機(jī)能理解、可操作的、具有一定屬性和行為的對象,將數(shù)據(jù)及數(shù)據(jù)的操作封裝在一起,通過調(diào)用對象的不同方法來完成相關(guān)事件。對象、實(shí)體與類人classPerson{}Persontom=newPerson()設(shè)計方法特點(diǎn)代表性語言面向機(jī)器用機(jī)器指令為特定硬件系統(tǒng)編制程序,其目標(biāo)代碼短,運(yùn)行速度和效率高,但可讀性和移植性差。86系列匯編語言面向過程用高級程序設(shè)計語言按計算機(jī)能夠理解的邏輯來描述要解決的問題及其解決方法,是過程驅(qū)動的,程序的可讀性和移植性好,核心是數(shù)據(jù)結(jié)構(gòu)和算法。但大型程序維護(hù)起來比較困難。Fortran(50年代)Basic(60年代)C(70年代)面向?qū)ο笥妹嫦驅(qū)ο蟮木幊陶Z言把現(xiàn)實(shí)世界的實(shí)體描述成計算機(jī)能理解、可操作的、具有一定屬性和行為的對象,將數(shù)據(jù)及數(shù)據(jù)的操作封裝在一起,通過調(diào)用各對象的不同方法來完成相關(guān)事件,是事件驅(qū)動的,其核心是類和對象,程序易于維護(hù)、擴(kuò)充。C++(80年代)VB(90年代)ObjectPascal(90年代)Java(90年代)3.1.1程序設(shè)計方法的發(fā)展3.1.2面向?qū)ο蟮膸讉€基本概念對象(Object):系統(tǒng)中用來描述客觀事物的一個實(shí)體,它是構(gòu)成系統(tǒng)的一個基本單位。由一組屬性和施加于該組屬性的一組操作構(gòu)成。對象可以是有形的事物,例如一臺電腦;也可以是無形的事物,例如一項(xiàng)工作計劃。類(Class):是具有相同屬性和操作的一組對象的集合,它為屬于該類的全部對象提供了統(tǒng)一的抽象描述,它由一個類名、一組屬性和一組操作構(gòu)成。屬性(Property):是對象的特征,包括狀態(tài)和行為。事件(Event)——由對象識別的一個外部動作屬性動態(tài)屬性——“行為”,用方法表示靜態(tài)屬性——“狀態(tài)”,用變量表示類是一個抽象的概念,表示一個有共同特征的對象集合。對象是一個具體的概念,它是類的一個具體的實(shí)例。類的作用是創(chuàng)建對象。類是創(chuàng)建對象的模板,對象是類的一個實(shí)例。類與對象的關(guān)系“人”類和對象“李四”的關(guān)系如何理解“對象”?對象的行為是什么?——方法對象的狀態(tài)是什么?——屬性對象的身份是什么?——名稱狀態(tài)可能影響行為每個對象“總是”有不同的身份,一個類的多個對象“可能”有不同的狀態(tài)名稱也叫“引用”三方面特征

包含——當(dāng)對象A是對象B的屬性時,稱對象B包含對象A;

如:發(fā)動機(jī)與汽車,CPU與計算機(jī)

繼承——當(dāng)對象A是對象B的特例時,稱對象A繼承了對象B

如:北京大學(xué)和大學(xué),液晶顯示器和顯示器

關(guān)聯(lián)——當(dāng)對象A的引用是對象B的屬性時,稱對象A和對象

B之間是關(guān)聯(lián)關(guān)系。

如:汽車與制造商對象的之間關(guān)系繼承性(inheritance)

自動地共享具有層次關(guān)系的類(子類)和對象中的方法和數(shù)據(jù)的機(jī)制。

當(dāng)類Y繼承類X時,就表明類Y是類X的子類,而類X是類Y的超/父類。類Y由兩部分組成:繼承部分和增加部分。 增加部分是專為Y編寫的新代碼;繼承部分可以是簡單的等同,也可以更為豐富:如對性質(zhì)重命名、重實(shí)現(xiàn)、復(fù)制、置空等。XY繼承部分

增加部分

Y繼承X繼承方式:簡單繼承(singleinheritance):一個類至多只能繼承一個 類(樹結(jié)構(gòu))。多重繼承(multipleinheritance):一個類直接繼承多個超 類(網(wǎng)狀結(jié)構(gòu))。類Y1,Y2簡單繼承類XXYY2Y1X1X2類Y多重繼承類X1,X2例:一個圖形系統(tǒng)()Figure

Line

Ellipse

Polygon

CloseFigure

OpenFigure

Pentagon

Triangle

Rectangle

Circle

Arc

(象素寬度,顏色,平移,旋轉(zhuǎn))(填充,邊界,周長,面積)(長度)3.1.3面向?qū)ο蟮能浖_發(fā)過程

面向?qū)ο蟮能浖_發(fā)過程可以大體劃分為三個階段:面向?qū)ο蟮姆治觯╫bjectorientedanalysis,OOA)面向?qū)ο蟮脑O(shè)計(objectorienteddesign,OOD)面向?qū)ο蟮膶?shí)現(xiàn)(objectorientedprogramming,OOP)。(1)面向?qū)ο蟮姆治觯∣OA——

objectorientedanalysis)主要作用:明確用戶的需求,并用標(biāo)準(zhǔn)化的面向?qū)ο蟮哪P鸵?guī)范地表述這一需求,最后將形成面向?qū)ο蟮姆治瞿P?,即OOA模型。分析階段的工作應(yīng)該由用戶和開發(fā)人員共同協(xié)作完成。面向?qū)ο蟮姆治鍪紫葢?yīng)該明確用戶的需求,然后再將這些需求以標(biāo)準(zhǔn)化模型的形式規(guī)范地表述出來,即將用戶和開發(fā)人員頭腦中形成的需求以準(zhǔn)確的文字、圖表等形式表述出來,形成雙方都認(rèn)可的文件。使用OOA的原因如下:(1)它使我們能在人類概括客觀事物的三個基本方法(對象及屬性、一般—特殊結(jié)構(gòu)和部分—整體結(jié)構(gòu))的框架上進(jìn)行定義和交流。(2)它首先著眼于問題空間的理解。(3)它將屬性及專用于那些屬性的方法視為一個固有的整體。(4)使用自包含分塊(對象之間依賴性最小)進(jìn)行分析和說明。(5)它提供一個支持分析和設(shè)計一致的強(qiáng)有力的表示工具。(6)它能適應(yīng)系列變化的系統(tǒng)和對當(dāng)前實(shí)際運(yùn)行系統(tǒng)的調(diào)整。常使用的OO(描述)方法有多種:BoochBooth方法(86年)Coad&yourdon方法(90年)JamesRumbaugh(OMT)方法(91年)Berard方法FireSmith方法Jacobson(OOSE)方法Martin-Odeu方法Seidewitz-Stark方法Shlaer-Mellor方法Wirfs-Brook方法UML(UnifiedModelingLanguage)方法Coad&Yourdon的OOA模型的5個層次對象—類層:找到要開發(fā)的應(yīng)用軟件所對應(yīng)的各個現(xiàn)實(shí)世界的實(shí)體,并從中抽象出類和對象。靜態(tài)屬性層:為對象—類層中抽取出來的各個類和對象設(shè)計靜態(tài)屬性和它們之間的約束關(guān)系。服務(wù)層:定義對象和類的動態(tài)屬性以及對象之間的消息通信。結(jié)構(gòu)層:定義系統(tǒng)中所有對象和類之間的層次結(jié)構(gòu)關(guān)系。主題層:將系統(tǒng)定義為若干主題(即子系統(tǒng)),把有關(guān)對象劃歸不同的主題。

從面向?qū)ο蟮姆治龅矫嫦驅(qū)ο蟮脑O(shè)計

OOA的各層模型化了“問題空間”,而作為OOA各層擴(kuò)充的OOD,則模型化一個特定的“實(shí)現(xiàn)空間”。這種擴(kuò)充主要是從增加屬性和方法開始的。

OOA是獨(dú)立于程序設(shè)計語言的,初步的OOD在很大程度上依然獨(dú)立于程序設(shè)計語言,而詳細(xì)OOD是依賴于語言的,并可有效地應(yīng)用過程式、函數(shù)式和面向?qū)ο蟮某绦蛟O(shè)計語言加以實(shí)現(xiàn)。語言的選擇對OOD的實(shí)施有重要的影響,但不會影響OOD的有效性。(2)面向?qū)ο蟮脑O(shè)計(OOD——

objectorienteddesign)概要設(shè)計——構(gòu)成最初的OOD模型

OOA模型界面管理:負(fù)責(zé)整個系統(tǒng)的人機(jī)交互界面的設(shè)計任務(wù)管理:負(fù)責(zé)處理并行操作之類的系統(tǒng)資源管理功能數(shù)據(jù)管理:負(fù)責(zé)設(shè)計系統(tǒng)與數(shù)據(jù)庫的接口詳細(xì)設(shè)計——對OOD模型進(jìn)行細(xì)化細(xì)化分析:是否有可以直接引用的已有類或部件細(xì)化設(shè)計:設(shè)計類,包括類的屬性和類之間的相互關(guān)系細(xì)化驗(yàn)證:驗(yàn)證各對象類公式間是否相容和一致、類成員的訪問權(quán)限設(shè)置是否合理、對象類的功能是否符合用戶要求等。(3)面向?qū)ο蟮膶?shí)現(xiàn)(OOP——

objectorientedprogramming)選擇一種合適的面向?qū)ο蟮木幊陶Z言用選定的語言編碼實(shí)現(xiàn)對軟件系統(tǒng)中各對象類的詳盡描述將編寫好的各個類代碼模塊根據(jù)類的相互關(guān)系集成起來利用開發(fā)人員提供的測試樣例和用戶提供的測試樣例分別檢驗(yàn)編碼完成的各個模塊和整個軟件系統(tǒng)。面向?qū)ο蟮能浖_發(fā)過程小結(jié)分析用戶需求,從問題中抽取對象模型;將模型細(xì)化,設(shè)計類,包括類的屬性和類之間的相互關(guān)系,同時考察是否有可以直接引用的已有類或部件;選定一種面向?qū)ο蟮木幊陶Z言,具體編碼實(shí)現(xiàn)上一階段類的設(shè)計,并在開發(fā)過程中引入測試,完善整個解決方案。3.1.4面向?qū)ο蟪绦蛟O(shè)計的四個特點(diǎn)抽象性指采用數(shù)據(jù)抽象的方法來構(gòu)建程序的類、對象和方法,即把系統(tǒng)中需要處理的數(shù)據(jù)和這些數(shù)據(jù)上的操作結(jié)合在一起,根據(jù)功能、性質(zhì)、作用等因素抽象成不同的抽象數(shù)據(jù)類型。封裝性指利用類將數(shù)據(jù)和基于數(shù)據(jù)的操作封裝在一起,數(shù)據(jù)被保護(hù)在類的內(nèi)部,系統(tǒng)的其他部分只有通過包裹在數(shù)據(jù)外面的被授權(quán)的操作,才能與這個類進(jìn)行交流和交互。繼承性指一個類可以從其它已有的類中派生,新類保持了父類中的行為和屬性,但增加了新的功能。多態(tài)性

指一個程序中可以有同名的不同方法共存的情況??梢岳米宇悓Ω割惙椒ǖ母采w和重載在同一個類中定義多個同名的方法來實(shí)現(xiàn)。3.1.5面向?qū)ο蟪绦蛟O(shè)計的三大優(yōu)點(diǎn)可重用性指在一個軟件項(xiàng)目中所開發(fā)的模塊,不僅可以用于本項(xiàng)目,還可以重復(fù)地使用在其他項(xiàng)目中。提高了開發(fā)效率,縮短了開發(fā)周期,降低了開發(fā)成本。由于采用了正確、有效的模塊,質(zhì)量得到保證,維護(hù)工作量減少。采用可重用模塊來構(gòu)建程序,提高了程序的標(biāo)準(zhǔn)化程度,符合現(xiàn)代大規(guī)模軟件開發(fā)的需求。

可管理性采用類作為構(gòu)建系統(tǒng)的部件,使整個項(xiàng)目的組織更加合理、方便;把數(shù)據(jù)和其上的操作封裝在一起,僅本類的方法才可以操縱、改變這些數(shù)據(jù),效率提高,開發(fā)難度降低;指應(yīng)用軟件能夠很方便地進(jìn)行修改和擴(kuò)充,包括軟件的內(nèi)容、形式和工作機(jī)制(如把C/S模式改為B/S模式)的修改和擴(kuò)充。特別適合于使用在快速原型的軟件開發(fā)方法中。

使系統(tǒng)維護(hù)(包括延伸開發(fā))變得簡單和容易,維護(hù)工作量和開銷大大降低。對模塊化技術(shù)的更有效的支持。

可擴(kuò)展性再回首:Java關(guān)鍵字?jǐn)?shù)據(jù)類型:bytebooleanchardouble

floatintlong

short,特殊的值:falsetruevoidnulllength程序流程控制:ifelse

、

switch

case、breakdefault、do–while、for、continue、return類的定義:class

extendsimplements

importinterfacepackagesuperthis非訪問控制符:abstractfinalstaticnative特殊運(yùn)算符:instanceofnew

訪問控制符:publicprivateprotected異常處理:trycatchfinallythrowthrows

線程:threadtransientsynchronized3.2Java的類類由數(shù)據(jù)和方法構(gòu)成,是Java編程的基礎(chǔ)。類既要提供與外部聯(lián)系的接口,同時又要盡可能隱藏類的實(shí)現(xiàn)細(xì)節(jié)。類屬性(數(shù)據(jù))方法(操作數(shù)據(jù))3.2.1類的定義[修飾符]class

類名[extends

父類][implements

接口名]{

成員變量聲明 //域(屬性)的聲明

方法聲明 }publicabstractfinal接口名父類修飾符定義類屬性,成員變量定義類方法(1)聲明類頭:關(guān)鍵字class父類名:跟在extends關(guān)鍵字后,用以說明當(dāng)前類是已經(jīng)存在的哪個類的子類。通過定義繼承關(guān)系,子類可以獲得父類的所有屬性和方法,并進(jìn)一步定義它自己的特殊屬性.接口名:跟在implements關(guān)鍵字后,用以說明當(dāng)前類中實(shí)現(xiàn)了哪個接口定義的功能和方法。修飾符:說明類的特殊性質(zhì),分為訪問控制符、抽象說明類和最終類說明符。

(2)聲明類體:

定義類的具體內(nèi)容,包括類的屬性與方法

[類的屬性]:可以是簡單變量,也可以是對象、數(shù)組等其他復(fù)雜數(shù)據(jù)結(jié)構(gòu)。聲明類屬性為簡單變量的語法:

[修飾符]變量類型變量名[=變量初值];例:intpassword;聲明類屬性為對象的語法:[修飾符]類名對象名[=new類名(實(shí)際參數(shù)列表)];例:PhoneCardmyCard=newPhoneCard();

修飾符有訪問控制符、靜態(tài)修飾符static、最終修飾符final、易失修飾符volatile和過渡修飾符transient。[類的方法]:

即成員函數(shù),它規(guī)定類屬性上的操作,實(shí)現(xiàn)類的內(nèi)部功能的機(jī)制,是類與外部交互的窗口。語法結(jié)構(gòu):[修飾符]返回值類型

方法名(參數(shù)列表)throws

例外名1,例外名2,...{

方法體;

局部變量聲明;

語句序列;}

課堂練習(xí):1.編寫一個車輛類,其中包括2個域:車輛類別、輪胎數(shù)量,2個成員方法:分別用來設(shè)置車輛類別和輪胎數(shù)量。2.編寫一個JavaApplication程序,實(shí)現(xiàn)車輛對象的創(chuàng)建,并調(diào)用其成員方法將所創(chuàng)建車輛的“車輛類別”設(shè)置為“長公交”、輪胎數(shù)量設(shè)置為6,要求通過字符界面輸出所創(chuàng)建與設(shè)置的結(jié)果。3.2.2類中的“變量”概念辨析:(1)成員變量:在類體變量定義處定義的變量,在整個類內(nèi)都有效;成員變量包括實(shí)例變量和類變量,用static定義的變量是類變量,也叫靜態(tài)變量;所有對象獨(dú)享實(shí)例變量,但共享類變量;實(shí)例變量只能通過對象名訪問,類變量既可以通過某個對象名也可以通過類名來訪問。(2)局部變量:在類的方法中定義的變量,僅在定義它的方法內(nèi)有效3.2.3類中的“方法”概念辨析:(1)實(shí)例方法:實(shí)例方法既可以操作實(shí)例變量,也可以操作類變量;實(shí)例方法在創(chuàng)建類對象后才分配入口地址;實(shí)例方法可以被類創(chuàng)建的任何對象訪問,必須通過對象來調(diào)用;實(shí)例方法可以調(diào)用其它方法(包括類方法)。(2)類方法:

用static修飾的方法是類方法,也叫靜態(tài)方法;

類方法只能操作類變量;類方法在類被加載到內(nèi)存后就分配了入口地址;類方法可以被類創(chuàng)建的任何對象調(diào)用,也可以通過類名來調(diào)用,類方法只能調(diào)用該類的類方法。本類中方法與變量之間的訪問關(guān)系

實(shí)例方法類方法實(shí)例變量類變量用對象名√√√√用類名

√各類之間方法與屬性的引用方法

實(shí)例方法類方法實(shí)例變量類變量局部變量實(shí)例方法√√√√√類方法

√√3.3構(gòu)造方法與對象創(chuàng)建3.3.1構(gòu)造方法的基本概念構(gòu)造方法:用來初始化對象(為其所有屬性賦初值)的一個特殊方法。(也稱構(gòu)造函數(shù))構(gòu)造方法名與類名相同構(gòu)造方法可以有0個或多個參數(shù)特點(diǎn)構(gòu)造方法始終和new關(guān)鍵字一起調(diào)用構(gòu)造方法沒有返回值在創(chuàng)建一個類的新對象時,系統(tǒng)自動調(diào)用構(gòu)造方法對其進(jìn)行初始化。引入構(gòu)造方法的原因:1)滿足面向?qū)ο蟪绦蛟O(shè)計中對象初始化的需要;2)提高靈活度,使初始化工作除賦值外有更復(fù)雜的操作;

在不定義構(gòu)造方法時,系統(tǒng)會自動為該類生成一個默認(rèn)(缺省)的構(gòu)造方法。缺省構(gòu)造類中可以不出現(xiàn)構(gòu)造方法,如果沒有構(gòu)造方法,系統(tǒng)將為該類缺省定義一個空構(gòu)造方法,也稱為缺省構(gòu)造方法。用缺省構(gòu)造方法初始化對象時,系統(tǒng)用缺省值初始化類對象的數(shù)據(jù)成員。

各數(shù)據(jù)類型的缺省值如下:數(shù)值型:0布爾型:false字符型:’\0’

類:null3.3.2構(gòu)造方法的定義例如,可以為Student類定義如下的構(gòu)造方法,初始化它的2個域:

注意:構(gòu)造方法定義了幾個形式參數(shù),創(chuàng)建對象的語句在調(diào)用構(gòu)造方法時,需要提供幾個類型、順序一致的實(shí)際參數(shù),指明新建對象各域的初始值。

Student(Stringm,Strings) { name=m; sex=s; }publicclassTestStudent{publicstaticvoidmain(Stringargs[]){Students1=newStudent(“張華”,“軟131”);Students2=newStudent(“丁一”,“軟132”);

System.out.println(s1.stuName);

System.out.println(s1.stuClass);

System.out.println(s2.stuNam);}}classStudent{ StringstuName; StringstuClass;

Student(Stringm,Strings) { stuName=m; stuClass=s; }}對象的使用可以用點(diǎn)(.)操作符來調(diào)用對象實(shí)例的成員變量和方法

(1)域的引用

成員變量引用的形式如下:對象名.variablename

例如可以通過賦值語句修改firstP的值。

firstP=“Henry”;

(2)方法的調(diào)用對象的方法調(diào)用的一般形式如下:對象名.方法名(參數(shù)列表)例如:firstPerson.setAge(30);實(shí)參實(shí)參classDemo.javapublicclassClassDemo{inta;intb;

ClassDemo()

{a=2;b=3;}

voidshow(){ System.out.println(“a=”+a+”,b=”+b);}

publicstaticvoidmain(Stringargs[])

{newClassDemo().show();}}

成員變量

成員方法classPerson{

Stringname;//姓名

intsex;//性別

int

age;//年齡

Person(Strings1){ name=s1;

}

StringgetName(){

returnname;}voidsetAge(int

d){

age=d;}}

Person類namesexagePerson()構(gòu)造方法getName()setAge(

)3.3.3創(chuàng)建類的實(shí)例對象創(chuàng)建對象的一般格式:類名

新建對象名=new

構(gòu)造函數(shù)();

new是為新建對象開辟內(nèi)存空間的算符。構(gòu)造函數(shù)()用來完成對象的初始化。如:TextFieldinput=newTextField(6);

建立一個名為input、長度為6的文本框。

Personp1=newPerson(“張三”);

建立一個名為“張三”的人p1。3.4定義和使用Java的方法3.4.1方法的定義Java中,方法只能在類中定義,由方法頭和方法體兩部分組成。格式:[修飾符]

返回值類型

方法名([參數(shù)列表])throws例外名1,例外名2,...{

局部變量/對象聲明部分;

語句部分;}方法定義舉例例如:定義計算平方值的方法intsquare(intx)

{

ints;

s=x*x;

returns;

}

int是方法返回值類型,square是方法的名字;x是方法的形式參數(shù),s是方法體內(nèi)的局部變量。方法聲明中的修飾符的含義:

[public|protected|private]

[static][final|abstract][native][synchronized]

static:

靜態(tài)方法(類方法),可通過類名直接調(diào)用

abstract:

抽象方法,沒有方法體

final:

方法不能被重寫

native:

集成其它語言的代碼

synchronized:

控制多個并發(fā)線程的訪問

例:

public

staticvoid

main(String

args[])

{}//主類方法3.4.2方法的參數(shù)方法頭定義時所帶的參數(shù)稱為形參,它規(guī)定了方法的輸入數(shù)據(jù),調(diào)用時所帶的參數(shù)稱為實(shí)參。帶多個參數(shù)時,要指明各參數(shù)的類型,并用逗號把各參數(shù)分隔開來?!靶螌?shí)結(jié)合”時是按位置順序一一對應(yīng)的,否則會引發(fā)編譯錯誤。多個同名方法通過所帶參數(shù)不同(包括:順序、類型、個數(shù))而實(shí)現(xiàn)多態(tài)。參數(shù)傳遞示例值傳遞⑴

值傳遞調(diào)用方法時,參數(shù)是普通變量,實(shí)參將其值傳給形參,調(diào)用中實(shí)參的值不受形參的影響。

⑵引用傳遞調(diào)用方法時,參數(shù)的類型為復(fù)合數(shù)據(jù)類型,如:數(shù)組、類。實(shí)參隨形參的變化而變化。參數(shù)傳遞方式分類:3.4.3方法的返回值方法的返回值是方法的輸出數(shù)據(jù)。定義方法頭時,通過定義方法返回值類型說明該方法的輸出數(shù)據(jù)類型,用return語句返回確定數(shù)值。方法無返回值時,返回值類型應(yīng)為void。格式:return表達(dá)式;例:類的定義publicclassTestClass{ staticints;//定義在此處才可以兩個方法都用

publicstaticvoidmain(Stringargs[]) { System.out.println("面積是:"+square(5)+""+s);//可以用兩種方法引用返回值

} staticintsquare(intx) {

//ints;

//在此處定義的話,main方法中則不能引用

s=x*x;returns; }}3.4.4方法的使用程序調(diào)用方法:

大部分用戶自定義的方法都屬于程序調(diào)用方法。調(diào)用命令通過被調(diào)用方法的名稱來說明要使用哪個自定義的方法,完成“形實(shí)結(jié)合”,為被調(diào)用方法的各形式參數(shù)賦初值。如:x=isPrime(i);

當(dāng)有多個同名方法時,根據(jù)參數(shù)列表來區(qū)分。(2)系統(tǒng)調(diào)用方法:

其最大特點(diǎn)是方法定義后,不需要寫專門的調(diào)用命令,系統(tǒng)會在程序運(yùn)行過程中自動去調(diào)用此方法才完成它所定義的任務(wù)。如:init()3.4.5定義方法的步驟和注意事項(xiàng)(1)算法中需要細(xì)化的步驟、程序中重復(fù)的代碼以及重載父類方法都可以定義成類的方法。(2)方法通常具有相對獨(dú)立的功能和明確的輸入輸出接口。(3)定義方法分定義方法頭和方法體兩部分。(4)方法頭包括方法名、參數(shù)列表、返回值類型、方法修飾和方法拋出的例外列表。重載方法的方法頭要與其父類方法的方法頭基本一致。(5)方法命名要遵循Java對標(biāo)識符的規(guī)定:以字母、$或-開頭,由字母、數(shù)字組成。

(6)參數(shù)列表是方法的輸入接口,它列

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論