第4章類與對象-構(gòu)建Java程序的基石_第1頁
第4章類與對象-構(gòu)建Java程序的基石_第2頁
第4章類與對象-構(gòu)建Java程序的基石_第3頁
第4章類與對象-構(gòu)建Java程序的基石_第4頁
第4章類與對象-構(gòu)建Java程序的基石_第5頁
已閱讀5頁,還剩74頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第四章類與對象:構(gòu)建Java程序的基石

目錄

面向?qū)ο蟪绦蛟O(shè)計靜態(tài)類與靜態(tài)成員要素

Java修飾符Java程序的基本結(jié)構(gòu)

構(gòu)造方法類的描述

重點(diǎn)與難點(diǎn)點(diǎn)撥經(jīng)典練習(xí)題本章知識重點(diǎn)3132構(gòu)造方法33this關(guān)鍵字34類成員要素的訪問控制修飾符static修飾符與靜態(tài)成員要素35面向?qū)ο蟪绦蛟O(shè)計的優(yōu)越性本章知識難點(diǎn)33Java類成員要素的訪問控制修飾符343132面向?qū)ο髱状筇卣鳎撼橄?、封裝、繼承、多態(tài)Java類的訪問控制修飾符

類與對象的關(guān)系面向?qū)ο蟮幕靖拍顚ο?Object)是一個應(yīng)用系統(tǒng)中用來描述客觀事物的實體,是具有特定屬性(數(shù)據(jù))和行為(方法)的基本運(yùn)行單位,是類的一個特定狀態(tài)下的實例。類(Class)是Java代碼的基本組織模塊,是用以描述一組具有共同屬性和行為的對象的基本原型,是對這組對象的概括、歸納與抽象表達(dá),它定義了本類對象所應(yīng)擁有的狀態(tài)屬性集及操作這組屬性的行為方法集。3132面向?qū)ο蟮幕靖拍?續(xù)1)接口(Interface)是一種只包含常量與抽象方法的特殊的類,是Java語言用以實現(xiàn)類間多重繼承功能的唯一手段。接口定義了一組特定功能的對外接口與規(guī)范,而并不真正實現(xiàn)這種功能,功能的實現(xiàn)留待給實現(xiàn)這一接口的各個類來完成

34包(Package)是用來容納一組相關(guān)類與接口的容器,是Java語言組織與管理類與接口的一種機(jī)制

33類與對象的關(guān)系類與對象之間的關(guān)系,類似于數(shù)據(jù)類型與變量之間的關(guān)系;一個類可以生成無數(shù)個不同的對象,每個對象屬性值不同,其狀態(tài)也不同??梢杂糜嬎銠C(jī)模型與計算機(jī)實體之間的關(guān)系來更形象地說明類與對象之間的關(guān)系:將馮·諾依曼計算機(jī)模型看作計算機(jī)類,則不同品牌的計算機(jī)實體就對應(yīng)為一個個的實例對象。類與對象的關(guān)系示例計算機(jī)模型與計算機(jī)實體之間的關(guān)系:面向?qū)ο缶幊?OOP)

從問題域客觀存在的事物出發(fā),將這些現(xiàn)實世界的物理實體抽象成概念世界的抽象數(shù)據(jù)類,再進(jìn)一步將這種抽象數(shù)據(jù)類轉(zhuǎn)換為計算機(jī)世界的類(Class);類刻畫出實體所具有的狀態(tài)信息與所能發(fā)揮的功能信息,是創(chuàng)建對象時所遵循的模板(Template)。對類進(jìn)行實例化,就生成一個個的對象,對象對應(yīng)于各個具體事物,是程序運(yùn)行過程中實際發(fā)揮作用的類的獨(dú)立內(nèi)存映像。借助于類與對象這兩個面向?qū)ο蟪绦蛑凶罨镜囊兀凑毡M可能符合人類自然思維的方式,來構(gòu)造軟件系統(tǒng),這就是所謂的面向?qū)ο蟪绦蛟O(shè)計(OOP)

OOP的邏輯過程面向?qū)ο笤O(shè)計分析的完整過程如圖所示:現(xiàn)實域抽象抽象類對象實例化映射抽象數(shù)據(jù)類物理實體邏輯實現(xiàn)概念域計算機(jī)世界面向?qū)ο蟮闹匾卣?/p>

面向?qū)ο缶哂幸韵聨讉€重要特征:抽象封裝與隱藏繼承多態(tài)性

33313234抽象抽象(Abstraction):抽象是面向?qū)ο缶幊痰钠瘘c(diǎn),也是其最本質(zhì)的特征之一。抽象的廣義概念是這樣定義的:從研究對象中提取與當(dāng)前目標(biāo)主題關(guān)系最密切的主要方面,而忽略掉與目標(biāo)無關(guān)的那些方面或關(guān)系不大的細(xì)枝末節(jié),從而更充分地注意與當(dāng)前目標(biāo)有關(guān)的方面,更明確地突出主題,這就是抽象抽象示例下圖闡述了如何由自然界眾多的動物實體出發(fā),經(jīng)過抽象的處理過程,最終得到動物這一概念封裝封裝(Encapsulation):封裝也可稱為信息隱藏(InformationHiding),是通過對象的方法來訪問與改變對象屬性的一種機(jī)制。封裝是面向?qū)ο蟮囊粋€重要原則,其實現(xiàn)的核心是將類的屬性與相關(guān)的操作捆綁起來,包裝成不可分割的、獨(dú)立的對象實體,將內(nèi)部的數(shù)據(jù)與實現(xiàn)細(xì)節(jié)盡可能隱蔽起來,使外部用戶不能直接操縱對象的內(nèi)部信息,只能通過對象對外提供的施加有一定限制的訪問接口來使用對象封裝示例下圖形象地說明了一個類的封裝原理。類對數(shù)據(jù)與行為的封裝是借助于不同級別的訪問修飾符來達(dá)到控制目的的繼承繼承(Inheritance):繼承是指從已有的類中可以派生出若干個新類,已有類稱為基類或父類,新類稱為派生類或子類;子類將自動地獲得基類的屬性與方法,從而不需再重復(fù)定義這些屬性與方法;當(dāng)然子類還可以修改父類的方法或增加新的方法,從而使自己更適合特殊的需要。類之間的繼承關(guān)系是現(xiàn)實世界中遺傳關(guān)系的直接模擬多態(tài)性多態(tài)性(Polymorphism):是指允許不同類的對象對同一消息作出各自的響應(yīng),即以統(tǒng)一的風(fēng)格處理已存在的數(shù)據(jù)及相關(guān)的操作。多態(tài)性語言具有靈活、抽象、行為共享、代碼共享的優(yōu)勢,較好地解決了應(yīng)用程序中方法同名的問題

OOP的優(yōu)越性從面向過程到面向?qū)ο笫浅绦蛟O(shè)計技術(shù)的一個飛躍。人們之所以要采用面向?qū)ο蟮某绦蛟O(shè)計技術(shù),其目的在于:

提升程序的開發(fā)與運(yùn)行效率提高代碼的可重用性(或者稱為復(fù)用性)按照與人類習(xí)慣思維方法一致的原則開發(fā)系統(tǒng)OOP的優(yōu)越性(續(xù))提高程序的可靠性與可維護(hù)性

提高程序的可擴(kuò)展性增強(qiáng)程序的可控制性總之,面向?qū)ο蟮某绦蛟O(shè)計,能夠有效分解、降低問題的難度與復(fù)雜性,提高整個求解過程的可控制性、可監(jiān)視性和可維護(hù)性,從而獲得較高的開發(fā)效率與可靠效果類的描述類是Java語言面向?qū)ο缶幊痰幕疽?,用來定義對象的成員變量(數(shù)據(jù)域)與成員方法(功能接口),描述對象的狀態(tài)與行為。Java程序?qū)⒛阋磉_(dá)的實體或概念封裝在類中,并由類來創(chuàng)建諸多的實例對象。應(yīng)用程序的功能便是由各個類的實例對象,通過調(diào)用各類方法來實現(xiàn)的類的定義

修飾符public、說明了類的屬性,abstract與final為互斥的兩個修飾符,不能同時出現(xiàn)于一個類的聲明中類的聲明用來指定該類的訪問修飾符、類的名稱、父類名稱及實現(xiàn)接口等屬性。聲明類的完整形式為:關(guān)鍵字class后面跟隨類名,類名為用戶定義的標(biāo)識符,最好以意義完整且易于識別的英文單詞或短句作為類名;類名應(yīng)該能夠描述出類的特征或作用,類名的第一個字母通常要大寫,如果類名由多個單詞組成,則每一單詞的首字母一般都要大寫。類的定義(續(xù)1)關(guān)鍵字extends后面跟隨著基類的名稱關(guān)鍵字implements后面跟隨著類所實現(xiàn)的接口列表帶有[]的項目為可選項目,只在必要時才出現(xiàn)類體是類功能實現(xiàn)的主體,是Java語句的集合

語句塊界定符{及}標(biāo)識出類體的有效范圍類的描述(續(xù)2)成員變量與成員方法為類的成員要素,簡稱為成員(Member),它們又分為靜態(tài)/類的要素與對象/實例要素兩類。

構(gòu)造方法是具有與類名相同名稱的一種特殊方法,用來創(chuàng)建類的對象及對成員變量進(jìn)行初始化。構(gòu)造方法為可選項,當(dāng)省略時,Java系統(tǒng)會按缺省方式定義空白的構(gòu)造方法。類定義示例【例】建立一個公共的最終類—日期類,其聲明格式如下:publicfinalclassDate//類的聲明語句{//類體定義

privateintyear;//年

privateintmonth;//月

privateintday;//日

publicinitDate(int

y,int

m,intd){……}//初始化年、月、日值的方法

publicshowDate(){……}//顯示當(dāng)前日期值的方法}屬性聲明public、protected與private為成員要素訪問修飾符,用來限制成員變量或成員方法的訪問范圍,即哪些類或?qū)ο罂梢栽L問此成員要素static用來指明成員要素為靜態(tài)要素,又稱類要素,以區(qū)別于對象要素。靜態(tài)要素存在于類的定義區(qū)域中,屬于類本身的成員,每個該類的對象共享這些要素

屬性:成員變量(MemberVariable)又稱為屬性(Attribute)或數(shù)據(jù)域(DataField),用來描述類對象的數(shù)據(jù)特征屬性聲明(續(xù)1)final用于成員變量時,是作為定義最終變量即常量的關(guān)鍵字。這類常量的值不允許修改。transient(意為短暫的、瞬時的)為專門用于成員變量的修飾符,表明成員變量為臨時變量

volatile(意為可變的、不穩(wěn)定的)為專門用于成員變量的修飾符,聲明一個被多個并發(fā)線程所共享的變量屬性聲明(續(xù)2)成員變量名為用戶自定義的標(biāo)識符,一般為有意義的英文單詞或單詞組合;變量名的第一個字母小寫,如果包含多個單詞,則其他單詞的首字母大寫一個定義語句可以聲明一個成員變量,也可以聲明多個同類型的成員變量。不同類型的成員變量必須分別由不同的聲明語句來定義屬性定義示例【例】定義一個包訪問屬性的學(xué)生類Student,該類繼承自Person父類,其屬性包含學(xué)號、姓名、性別、出生日期、電子郵箱、手機(jī)號碼、QQ號碼、通訊地址等。類的定義代碼如下:classStudentextendsPerson//extends關(guān)鍵字后面跟隨基類名稱{publicStringcode;//學(xué)號

publicStringname;//姓名

publicbooleansex;//性別

privateDatebirthDate;//出生日期

privateStringEmail;//電子郵箱

privateStringcellPhoneCode;//手機(jī)號碼

privateint

QQCode;//QQ號碼

publicStringaddress;//通訊地址……//成員方法定義(略)}類的成員方法成員方法(MemberMethod)又稱為功能接口(FunctionInterface),簡稱為方法(Method),是類對象與外界的接口,描述了類對象的行為方式,反應(yīng)了對象的行為特征,特別是對屬性進(jìn)行操作的特征。成員方法對成員變量的操作主要體現(xiàn)在以下兩個方面:改變對象的屬性,一般記為set方法返回對象的屬性,一般記為get方法成員方法的定義類中可定義多個方法,其定義格式如下:[成員方法修飾符]<方法返回類型><方法名>([參數(shù)列表])[throws<異常列表>]{//方法體定義

……//用于描繪方法行為的Java語句}成員方法展開的定義格式為:[public|protected|private][static][final|abstract][native][synchronized]<方法的返回類型><方法名>([參數(shù)列表])[throws<異常列表>]{……}成員方法的定義(續(xù)1)<方法的返回類型><方法名>([參數(shù)列表])子句為成員方法的方法原型。其中成員方法修飾符為修飾成員方法的一些關(guān)鍵字習(xí)慣上,人們將屬性的聲明放在方法之前,但Java編譯器對屬性和方法的位置并無規(guī)定,二者出現(xiàn)的順序可以任意進(jìn)行組合穿插,在語法上都是有效的333132成員方法的定義(續(xù)2)throws<異常列表>子句稱為聲明拋出異常短語。如果定義的方法可能會產(chǎn)生自己不準(zhǔn)備處理或無法處理的異常(異常為一種嚴(yán)重級別不高的錯誤),應(yīng)該在方法定義語句的throws子句中聲明拋棄該類異常,使得該類異常對象從調(diào)用的棧中向上傳播,直到有合適的方法捕獲到它并給予處理為止34構(gòu)造方法構(gòu)造方法(Constructor)又稱為構(gòu)造器,熟悉C++語言的人習(xí)慣上稱之為構(gòu)造函數(shù)。構(gòu)造方法是類用來創(chuàng)建對象、初始化類的屬性的一種特殊方法,它本身不屬于類的成員方法。Java中所有的類至少都要有一個構(gòu)造方法,即使用戶不明確地定義,系統(tǒng)也會為該類生成一個默認(rèn)構(gòu)造方法或缺省構(gòu)造方法,這種缺省構(gòu)造方法沒有任何參數(shù),且方法體為空。構(gòu)造方法的特殊性構(gòu)造方法沒有返回類型,也不允許返回void類型。構(gòu)造方法的方法名與類名完全相同(包括字母大小寫)一個類可以包含多個重載的構(gòu)造方法,使用這些重載的構(gòu)造方法創(chuàng)建不同對象時,通過參數(shù)的不同來決定調(diào)用哪個構(gòu)造方法。構(gòu)造方法不允許用戶直接調(diào)用,只能通過new關(guān)鍵字在創(chuàng)建對象時由系統(tǒng)調(diào)用。33343132構(gòu)造方法的特殊性(續(xù))構(gòu)造方法可以繼承,即子類能夠繼承父類的構(gòu)造方法構(gòu)造方法用于創(chuàng)建對象時由系統(tǒng)自動調(diào)用,一般定義為public訪問修飾類型或默認(rèn)的包訪問類型,極少有需要定義為private或protected訪問類型的場合構(gòu)造方法中可以使用super與this兩個關(guān)鍵字來引用直接父類或自身對象353637實例對象類是用來描述對象數(shù)據(jù)與行為的模板與規(guī)范,是一個抽象的概念,無法直接使用類來完成數(shù)據(jù)狀態(tài)的改變與行為的實施,必須由一個個的對象來搭建應(yīng)用程序的大廈。創(chuàng)建對象一般包括三個步驟:

聲明對象引用變量建立對象實體初始化對象

實例對象的引用對象實體(Object)與對象引用變量(ObjectReferenceVariable)是兩個完全不同的概念。對象實體是類映射在內(nèi)存中的一塊物理區(qū)域,該區(qū)域中存儲著類所定義的成員的當(dāng)前狀態(tài)。對象引用變量并不是對象本身,而是指向?qū)ο髮嶓w的符號標(biāo)識,其值為一個32位的地址,該地址對應(yīng)的存儲空間為對象的物理存放區(qū)域一個對象可以被多個對象引用變量引用,但一個對象引用變量某一時該只能指向一個特定的對象對象引用示例例如下面的兩行代碼:CubecubeObj1,cubeObj2=null;cubeObj1=newCube(50,40,30);第一個語句聲明了兩個立方體對象引用變量并初始化第二個變量的值為null,即cubeObj2變量不引用任何對象,它的“地址”為空值;第二個語句調(diào)用Cube類具有三個參數(shù)的構(gòu)造方法,創(chuàng)建了一個實際的對象實體,并將對象的引用地址賦予對第一個變量對象引用示例圖

如同簡單數(shù)據(jù)類型的變量之間可以相互賦值,對象引用變量之間也可相互賦值。對象變量之間的賦值,并不重新生成對象的拷貝,而只是將一個對象變量的引用復(fù)雜給另一個對象變量,從而使它們最終都指向同一個對象實體的內(nèi)存地址。賦值語句cubeObj2=cubeObj1;將變量cubeObj1指向的對象引用賦值給了cubeObj2變量,使得兩個對象變量都指向同一個對象使用對象成員要素對象創(chuàng)建后,就擁有了類的屬性與方法的實例化副本,通過對象引用變量及點(diǎn)符號(.),便可以使用該對象,實現(xiàn)對對象屬性與方法的訪問調(diào)用對象成員方法(續(xù))調(diào)用對象成員方法的命令格式為:<對象引用變量>.方法名([參數(shù)列表])訪問對象屬性的命令格式為:<對象引用變量>.<屬性名>this關(guān)鍵字this是一種特殊的引用,它指向?qū)ο笞陨恚硎緦ψ陨韺ο蟮囊粋€引用。通過this這一引用,能夠訪問對象自身的成員數(shù)據(jù),調(diào)用對象自身的成員方法。可以將this作為對象特殊的引用變量的名稱,該變量可被訪對象自身使用。this關(guān)鍵字主要用于類的非靜態(tài)成員方法(即實例方法)與構(gòu)造方法中,而在靜態(tài)方法(即類方法)中是不允許使用this關(guān)鍵字的。this關(guān)鍵字的用途構(gòu)造方法中通過this引用同類的其他重載構(gòu)造方法在非靜態(tài)成員方法中,通過this訪問當(dāng)前對象的成員變量或成員方法在構(gòu)造方法中或非靜態(tài)成員方法中,參數(shù)名或方法內(nèi)的局部變量名與類的屬性同名,為區(qū)分開來,需要在類的屬性名前加上this.前綴

在非靜態(tài)成員方法的參數(shù)中,包含有對當(dāng)前對象引用的對象類型參數(shù),此時需用this來傳遞這類參數(shù)get與set方法get方法返回特定屬性的當(dāng)前值它的方法原型可描述為:

public<反回的數(shù)據(jù)類型>get<屬性名稱>()set方法用來設(shè)置或修改某一屬性的值它的方法原型可描述為:publicvoidset<屬性名稱>(<屬性的數(shù)據(jù)類型><參數(shù)>)get與set方法的好處類能夠?qū)?shù)據(jù)的內(nèi)部實現(xiàn)隱藏起來,而提供給對外一個接口,從而避免用戶直接操縱類的屬性通過對get或set方法設(shè)置功能代碼,類能夠有效地實施成員變量的合法性檢查通過get或set方法的組合,能夠控制某些屬性的只讀或只寫屬性。如對于點(diǎn)類僅僅提供getX()方法,而不提供setX()方法,則x坐標(biāo)屬性就成為一個只讀的屬性333132Java的修飾符Java的修飾符(Modifier)是一組用來描述與刻畫類、屬性、構(gòu)造方法與成員方法的系統(tǒng)關(guān)鍵字。主要包括訪問權(quán)限控制修飾符與特征修飾符特征修飾符是用來刻畫類、成員變量或成員方法特定特征的修飾符,針對不同的對象,特征修飾符的內(nèi)容也各不相同訪問權(quán)限控制修飾符簡稱訪問控制修飾符或訪問修飾符,其作用是指明類、屬性或方法是否可以被程序里的其他部分訪問和調(diào)用,限定程序的哪些其他部分可以訪問和調(diào)用它們,哪些不可以Java修飾符列表Java的修飾符類成員變量成員方法構(gòu)造方法訪問修飾符public√√√√protected×√√√private×√√√缺省(package)√√√√特征修飾符static×√√×abstract√×√×final√√√×transient×√××volatile×√××native××√×synchronized××√×類的訪問控制修飾符公共類訪問修飾符public一個類被聲明為公共類,表明它可以被所有的其他的類所訪問和引用,其他的類既包括本包的類,也包括其他包的類缺省的類訪問修飾符缺省的包訪問屬性規(guī)定該類只能被同一個包中的其他類或?qū)ο笏L問和引用,而不允許被其他包中的類或?qū)ο笏褂妙惓蓡T的訪問控制修飾符31公共訪問修飾符public

32保護(hù)訪問修飾符protected

33私有訪問修飾符private34缺省的訪問修飾符類的特征修飾符

abstract特征修飾符final特征修飾符類的所有修飾符成員變量的特征修飾符

static與特征修飾符final特征修飾符transient屬性修飾符volatile屬性修飾符成員變量的所有修飾符成員方法的特征修飾符

static特征修飾符abstract特征修飾符final特征修飾符synchronized修飾符native修飾符成員方法的所有修飾符缺省的修飾符訪問屬性訪問修飾符關(guān)鍵字本類相同包中的不同類(包含子類)不同包中的子類不同包中的非子類公共訪問屬性public??♂?♂?♂保護(hù)訪問屬性protected??♂♂私有訪問屬性private?缺省的包訪問屬性無??♂訪問修飾符的控制范圍注:?表示能夠訪問訪問修飾符定義的類♂表示能夠繼承訪問修飾符定義的類static修飾符與靜態(tài)成員要素類的成員要素可以被特征修飾符static聲明為靜態(tài)成員要素。靜態(tài)成員要素屬于整個類,能夠通過類名來直接使用,而不需引用任何類的實例對象,因而靜態(tài)成員要素又稱為類成員要素,簡稱類成員(ClassMember)或靜態(tài)成員(StaticMember)。靜態(tài)成員要素包括靜態(tài)屬性(StaticAttribute)與靜態(tài)方法(StaticMethod),它們先于類的任何實例對象創(chuàng)建之前而存在。靜態(tài)屬性的特征靜態(tài)屬性在類加載時自動創(chuàng)建,并被存放在類的內(nèi)存體中的公共存儲單元中該類所有的對象共享同一個靜態(tài)屬性,存取到的是相同的值靜態(tài)屬性可以通過類名直接訪問,也可以由對象變量來引用靜態(tài)屬性與非靜態(tài)屬性一樣,可以使用public、private、final等修飾符靜態(tài)方法的特征31靜態(tài)方法屬于整個類

32靜態(tài)方法可通過類名直接訪問或者由對象變量來引用

33靜態(tài)方法只能訪問該類的靜態(tài)屬性,不能訪問該類的實例變量

34靜態(tài)方法只能調(diào)用該類的其他靜態(tài)方法,不能調(diào)用該類的實例方法

靜態(tài)方法的特征(續(xù))靜態(tài)方法不能以任何方式引用this與super關(guān)鍵字靜態(tài)方法不能被子類所覆蓋Java的應(yīng)用程序必須有且只能有一個入口方法main(),是程序運(yùn)行的起點(diǎn),它存在于所有對象創(chuàng)建之前,因而main方法必須被定義為靜態(tài)方法363738但實例方法卻可以訪問該類的靜態(tài)屬性與靜態(tài)方法

35四類成員要素的性質(zhì)與特征四類成員要素的使用及訪問方式表成員要素類型存在時機(jī)通過類名使用由對象引用能否在靜態(tài)方法中訪問能否在實例方法中訪問靜態(tài)/類屬性對象創(chuàng)建前已存在√√√√實例/對象屬性對象創(chuàng)建后才存在×√×√靜態(tài)/類方法對象創(chuàng)建前已存在√√√√實例/對象方法對象創(chuàng)建后才存在×√×√Java應(yīng)用程序的基本結(jié)構(gòu)

[package<聲明的包名稱>;][import<Java類庫1>;][……][import<Java類庫m>;]定義用戶類1{定義類1的若干成員變量定義類1的若干構(gòu)造方法定義類1的若干成員方法}定義用戶類2{定義類2的若干成員變量定義類2的若干構(gòu)造方法定義類2的若干成員方法}……定義用戶類n{定義類n的若干成員變量定義類n的若干構(gòu)造方法定義類n的若干成員方法}成員方法程序的基本構(gòu)成單元是類,而成員方法又是類的主要組成部分,類的功能主要由成員方法來體現(xiàn)。成員方法簡稱方法,它定義了類的行為或動作,描述了對象可以執(zhí)行的操作規(guī)范,規(guī)定了類與外界進(jìn)行交互的接口方法是一個有名字的、具有相對獨(dú)立功能的程序模塊。對象通過執(zhí)行成員方法對傳遞過來的消息作出響應(yīng),從而完成特定的功能。方法之間可以互相調(diào)用,同一個方法可被一個或多個方法調(diào)用任意次方法的聲明Java程序中,成員方法只能在類中聲明。聲明方法的格式如下:[方法修飾符]<返回值類型><方法名>([參數(shù)列表])throws<異常列表>//方法頭部聲明

{//方法體定義局部變量聲明;語句序列;

[return<表達(dá)式>;]}方法定義的兩個部分方法定義中包含兩部分內(nèi)容:方法頭部聲明與方法體定義方法頭部聲明定義了方法的原型與性質(zhì)。一般由方法名、參數(shù)列表、返回類型、方法修飾符和方法拋出異常五部分組成方法體則定義了方法的具體內(nèi)容與操作邏輯。方法體通常包含兩類功能:一是對類的屬性進(jìn)行各種操作;二是與其他的類與對象進(jìn)行消息傳遞操作頭部聲明與方法體定義31方法頭部聲明定義了方法的原型與性質(zhì)32方法體則定義了方法的具體內(nèi)容與操作邏輯33方法體通常包含兩類功能:一是對類的屬性進(jìn)行各種操作;二是與其他的類與對象進(jìn)行消息傳遞操作

局部變量類中的數(shù)據(jù)變量可分為成員變量(MemberVariable)與局部變量(LocalVariable)兩類成員變量在類體中定義,其作用域為整個類。成員變量在類中定義的順序與位置并不影響它的作用域范圍局部變量的作用域(Scope)又稱為局部變量的作用范圍,它是變量可被使用的代碼塊范圍;作用域決定了變量的可見性與生存時間。局部變量作用域開始于它的聲明,持續(xù)到包含該局部變量的程序段結(jié)束之處。不同類型的局部變量,其作用域也不盡相同3231局部變量的三種類型定義于方法體內(nèi)的局部變量:這類局部變量僅能在方法內(nèi)使用,其作用域局限于所定義的方法體。復(fù)合語句(或稱為語句塊)中定義的局部變量:這類局部變量只在復(fù)合語句中有效。方法的形參也稱為局部變量:這類局部變量的作用域覆蓋整個方法。方法形參在方法被調(diào)用時被創(chuàng)建,并以調(diào)用方法傳來的實參作為其初始值,當(dāng)方法終止,調(diào)用結(jié)束時,這些形參自動被釋放,其生命周期也隨著終止。333132局部變量的使用原則局部變量不允許加Java修飾符局部變量在使用前必須先聲明,并賦初值,否則將出錯方法參數(shù)傳遞機(jī)制方法的參數(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

提交評論