創(chuàng)建類和方法_第1頁(yè)
創(chuàng)建類和方法_第2頁(yè)
創(chuàng)建類和方法_第3頁(yè)
創(chuàng)建類和方法_第4頁(yè)
創(chuàng)建類和方法_第5頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第5章 創(chuàng)建類和方法 200906 21,回顧,面向?qū)ο蟮幕靖拍?四個(gè)概念三個(gè)原則 對(duì)象和類 類庫(kù) 類的封裝 類的多態(tài) String類和StringBuffer類的應(yīng)用,目 標(biāo),實(shí)例和類的定義 定義方法和使用 應(yīng)用程序傳參 類的構(gòu)造方法,Java類的定義,類是組成Java程序的基本要素。它封裝了一類對(duì)象的狀態(tài)和方法,是這一類對(duì)象的原型。,類的修飾字 class 類名稱 extends 父類名稱implements 接口名稱列表 變量定義及初始化; 方法定義及方法體; ,類體,其中定義了該類中所有的變量和該類所支持的方法,稱為成員變量和成員方法。,Java語(yǔ)言的類類的修飾符,類的修飾符,訪問(wèn)控

2、制修飾符,抽象類修飾符,最終類修飾符,public,缺省的訪問(wèn)修飾符,類的修飾符 class 類名稱 extends 父類名稱implements 接口名稱列表,abstract,final,Java語(yǔ)言的類類名稱,與Java的其他標(biāo)識(shí)符一樣,類名有如下設(shè)置: 以字母、字符“-” 或“$”開(kāi)頭 只能含有大于十六進(jìn)制00C0以上的Unicode字符 不能使用與Java關(guān)鍵字相同的類名 類名通常以大寫字母開(kāi)頭,如果類名由多個(gè)單詞組成,則每一個(gè)單詞的開(kāi)頭字母也大寫,Java語(yǔ)言的類類體,類體中定義了該類所有的變量(屬性)和該類所支持的方法。通常變量在方法前定義(并不一定要求),如下所示:,類聲明 成

3、員變量定義; 構(gòu)造函數(shù)定義; 成員方法定義; ,Java的類體域的聲明,域,也就是類的屬性或變量。聲明域的格式為 其中, 內(nèi)的內(nèi)容為可選項(xiàng),當(dāng)初始值可能是一個(gè)表達(dá)式,也可能是一個(gè)對(duì)象。,域修飾符類型 變量= 初始值,變量;,域的聲明變量,變量的聲明格式: 類型 變量名=初值; 變量的聲明例子: byte b;int length,width;double d1=0.23,d2=56.7; /double是類型名,d1,d2是變量名,0.23和56.7是初值boolean mycom=true;char myChar=b;,域修飾符類型 變量= 初始值,變量;,域的聲明域修飾符,域修飾符類型 變

4、量= 初始值,變量;,域的修飾符,訪問(wèn)控制修飾符,靜態(tài)域修飾符,其他修飾符,public,static,transient,最終域修飾符,final,放在內(nèi)存中的臨時(shí)的變量。在網(wǎng)絡(luò)傳輸時(shí)使用,節(jié)省資源,默認(rèn)的,protected,private,Java的類體方法的聲明,方法聲明了可以被調(diào)用的代碼,傳遞固定數(shù)量的參數(shù)。方法聲明的格式為:,方法修飾符 結(jié)果類型 方法名(參數(shù)列表) throws子句方法的體,final void move(int dx, int dy) throws IOException x += dx; y += dy; ,例:,方法的聲明命名,Java中方法的命名包括方法名

5、和參數(shù)列表兩部分,方法名的命名規(guī)則與其他標(biāo)示符規(guī)則一致 Java中允許相同方法名但參數(shù)列表不同的方法存在,方法修飾符 結(jié)果類型 方法名(參數(shù)列表) throws子句方法的體,class point implements Move int x,y; abstract void move(int dx, int dy); void move(int dx, int dy) x += dx; y += dy; ,class point implements Move int x,y; abstract void move(int dx); void move(int dx, int dy) x +=

6、 dx; y += dy; ,方法的聲明方法修飾符,方法的修飾符,訪問(wèn)控制修飾符,靜態(tài)方法修飾符,public,protected,private,static,最終方法修飾符,final,同步方法修飾符,synchronized,表明這個(gè)方法不是用 Java 語(yǔ)言而是由一種本機(jī)語(yǔ)言編寫的。,默認(rèn)的,方法的聲明方法的參數(shù),參數(shù)的類型可以是簡(jiǎn)單數(shù)據(jù)類型,也可以是引用數(shù)據(jù)類型(數(shù)組、類或接口),數(shù)據(jù)類型(數(shù)組、類或接口),參數(shù)傳遞方式是值傳遞。,class A static void change(int i) i = 100; public static void main(String arg

7、s) int i = 10; change(i); System.out.println(i); ,運(yùn)行結(jié)果:10,方法的聲明方法的體,方法體是對(duì)方法的實(shí)現(xiàn)。它包括局部變量的聲明以及所有合法的Java指令。局部變量的作用域只在該方法內(nèi)部。 如果方法提供實(shí)現(xiàn),但是實(shí)現(xiàn)部分可以不要求任何可執(zhí)行的代碼,方法的體還是應(yīng)該當(dāng)作個(gè)語(yǔ)句塊寫出,即“”。 如果方法被聲明為void,那么,方法的體中就不能含有return語(yǔ)句。如果方法的聲明中含有返回類型,則方法的體中必須含有return語(yǔ)句,main方法,main方法在Java應(yīng)用程序中表示程序執(zhí)行的起 main方法是Java應(yīng)用程序中惟一與用戶直接交換信息的

8、方法,必須聲明為public static和void,不能返回往何值。它的定義格式如下:,public static void main(String args) 方法體,向方法傳遞參數(shù),class Test int a,b; Test(int i,int j) a=i; b=j; /可以在函數(shù)中改變對(duì)象狀態(tài) void change(Test obj) obj.a=50; obj.b=40; ,當(dāng)對(duì)象作為函數(shù)參數(shù)時(shí),在函數(shù)中只能改變?cè)搶?duì)象的狀態(tài),但不能改變?cè)搶?duì)象的引用,void swapobj(Day x,Day y) Day temp=y; y=x; x=temp; ,引用本身 按值傳遞,調(diào)

9、用swapobj(obj1,obj2),改變對(duì)象狀態(tài),Exceise向方法傳遞參數(shù),命令行參數(shù),Java 應(yīng)用程序可以從命令行中接收任意數(shù)量的參數(shù) 每個(gè)參數(shù)被視為字符串分別存儲(chǔ)在main函數(shù)的參數(shù)數(shù)組中 可以使用雙引號(hào)將多個(gè)字符串作為一個(gè)整體顯示 class ComndLineArg1 public static void main(String args ) for(int i=0;iargs.length;i+) System.out.println(argsi); ,輸出 結(jié)果,輸出 結(jié)果,方法重載(overloading),方法重載是Java實(shí)現(xiàn)面向?qū)ο蟮亩鄳B(tài)性機(jī)制的一種方式。 同一個(gè)

10、類中多個(gè)方法有相同的名字,不同的參數(shù)列表,這種情況稱為方法重載。 返回類型不同并不足以構(gòu)成方法重載。 當(dāng)重載方法被調(diào)用時(shí),編譯器根據(jù)參數(shù)的類型和數(shù)量來(lái)確定實(shí)際調(diào)用哪個(gè)重載方法的版本。,方法重載示例,class Calculation public void add( int a, int b) int c = a + b; System.out.println(兩個(gè)整數(shù)相加得 + c); public void add( float a, float b) float c = a + b; System.out.println(兩個(gè)浮點(diǎn)數(shù)相加得+c); public void add( Str

11、ing a, String b) String c = a + b; System.out.println(兩個(gè)字符串相加得 + c); ,class CalculationDemo public static void main(String args) Calculation c = new Calculation(); c.add(10,20); c.add(40.0F, 35.65F); c.add(早上, 好); ,編譯器決定調(diào)用版本,Java的類體構(gòu)造函數(shù),并非類的成員方法,而是一個(gè)用來(lái)創(chuàng)建對(duì)象的特殊方法,用來(lái)初始化對(duì)象的屬性 構(gòu)造器的名字與類名相同,所有的Java類都至少有一個(gè)構(gòu)

12、造器。例如,MyClass類的構(gòu)造器為MyClass(),class MyClass public int myCount; public MyClass(int i) myCount = i; ,構(gòu)造函數(shù)方法,構(gòu)造函數(shù)名稱與類名稱相同 構(gòu)造函數(shù)沒(méi)有返回類型 其任務(wù)是在創(chuàng)建對(duì)象時(shí)初始化其內(nèi)部狀態(tài),class Fruit boolean seedLess; boolean seasonal; float price; Fruit(boolean seed, boolean season, float p) seedLess = seed; seasonal = season; price = p; ,重載構(gòu)造函數(shù),Java 為每一個(gè)類自動(dòng)提供缺省構(gòu)造函數(shù) 缺省構(gòu)造函數(shù)將成員變量的值初始化為缺省值 一旦創(chuàng)建了自己的構(gòu)造函數(shù),缺省的構(gòu)造函數(shù)將不復(fù)存在。 重載構(gòu)造函數(shù)提供了一組創(chuàng)建對(duì)象的方式,可以根據(jù)需要決定是否帶初始參數(shù)。,public class constructOverload int x; constructOverload() x=0; System.out.println(不帶參

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論