java典型應(yīng)用徹查1000例第一卷入門源碼習題bookjavavol-1java_第1頁
java典型應(yīng)用徹查1000例第一卷入門源碼習題bookjavavol-1java_第2頁
java典型應(yīng)用徹查1000例第一卷入門源碼習題bookjavavol-1java_第3頁
java典型應(yīng)用徹查1000例第一卷入門源碼習題bookjavavol-1java_第4頁
java典型應(yīng)用徹查1000例第一卷入門源碼習題bookjavavol-1java_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第七章方法(Methods)7-1 簡介Java語言的方法(Methods),猶如其他高級語言程序中的子程序(Subroutines)或函數(shù)(Functions),是具有解決問題功能的程序塊,因為Java為面向?qū)ο笳Z言,因此在類、對象等范疇下增添了一些使用方法,這些方法都是學習Java的基礎(chǔ)必讀,本章將以實例基礎(chǔ),對其進行清晰地講解。7-2 方法(Methods)設(shè)計程序是為了要借程序的功能工作,幫助解決問題。在其他程序語言中,稱作 “子程序(Subroutine) / 函數(shù)(Function)”,在Java語言中,稱作 “方法(Methods)”。為了方便,將常用的功能需求,先設(shè)計出一些內(nèi)建

2、子程序(Subroutine) / 函數(shù)(Function),或Java的方法(Methods),儲存于系統(tǒng)鏈接庫內(nèi),以后設(shè)計程序時,根據(jù)需要,由主程序調(diào)用有關(guān)的子程序/函數(shù)或方法,組成一個功能強大的工作群。范例79:設(shè)類class Study內(nèi)有方法addcredit()、totalcredit()程序代碼,試描述其執(zhí)行功能01 class Study02 int credit = 0;03 void addcredit(int i) credit += i; 04 int totalcredit() return credit; 05 范例80:主類如何調(diào)用使用方法 01 class St

3、udy 02 int credit=0;03 void addcredit(int i) credit += i; 04 int totalcredit() return credit; 05 06 class Ex07_2_2 07 public static void main(String args) 08 Study joe = new Study();09 Study george = new Study );范例80:續(xù)10 joe.addcredit(12);11 george.addcredit(9); 12 joe.addcredit(6);13 george.addcred

4、it(3);14 System.out.println(joe studied:+joe.totalcredit()+credites);15 System.out.println(george studied:+george.totalcredit()+credites);16 17 7-3 實例方法(Instance Methods)方法也是一樣,有其所屬的類對象,當所屬類對象生存時,該方法才可被執(zhí)行使用,如此隨所屬類對象生存而生存的方法稱為 “生存方法(Instance Methods)”。范例81:試表達方法生存期的困擾01 class Number 02 int n = 0;03 v

5、oid addN(int i) n = i; 04 int getN() return n; 05 06 class Ex07_3_1 07 public static void main(String args) 08 addN(10);09 System.out.println(使用方法 getN: + getN();10 11 范例82:試表達方法生存期的困擾01 class Number 02 int n = 0;03 void addN(int i) n = i; 04 int getN() return n; 05 06 class Ex07_3_1 07 public stati

6、c void main(String args) 08 Number N;09 N.addN(10);10 System.out.println(使用方法 N.getN: + N.getN();11 12 范例82-2:實例方法(Instance Methods) 的應(yīng)用01 class Number 02 int n = 0;03 void addN(int i) n = i; 04 int getN() return n; 05 06 class Ex07_3_1 07 public static void main(String args) 08 Number N = new Numbe

7、r(); 09 N.addN(10);10 System.out.println(使用方法 N.getN: + N.getN(); 11 N.n = 20;12 System.out.println(使用變量 N.n: + N.n);13 14 7-5 構(gòu)造函數(shù) (Constructor)在日常生活中,我們身邊的人、事、地、物都有一個代表性的印像。張三是有能力的人、李四是浪漫的人、書房是看書的房間等。以書房為例,可以用作打牌、下棋、睡覺等,但其代表性的主要功能仍是看書。 Java語言亦有如上述的對象特性,一個類程序含有多個不同功能的方法,其中被選為代表性功能的方法是該類的 “構(gòu)造函數(shù)(Cons

8、tructor)”。范例84:構(gòu)造函數(shù)的應(yīng)用01 class Mynumber 02 int n;03 Mynumber() 04 n = 3;05 System.out.println(Here is Constructor and n = + n);06 07 int getnumber() return n; 08 09 class Ex07_5_1 10 public static void main(String args) 11 Mynumber a = new Mynumber();12 System.out.println(Here is main and a.getnumbe

9、r() = +a.getnumber();13 14 范例85:類程序內(nèi),無法直接執(zhí)行表達式01 class Mynumber 02 int n;03 n = 3;04 System.out.println(Here is Constructor and n = + n);05 int getnumber() return n; 06 07 class Ex07_5_2 08 public static void main(String args) 09 Mynumber a = new Mynumber();10 System.out.println(Here is main and a.g

10、etnumber() = +a.getnumber();11 12 7-6 方法重載(Method Overload)Java語言也有類似的對象行為,類內(nèi)有多個方法,名稱相同、功能相同,不同者為參數(shù)的不同。(1) 參數(shù)的數(shù)據(jù)型態(tài)不同。(2) 參數(shù)的數(shù)量不同。當被調(diào)用執(zhí)行時,參數(shù)型態(tài)與數(shù)量均符合的方法,自動出面接受執(zhí)行,如此對象行為稱為 “方法重載(Method Overloading)”。范例86:方法重載的應(yīng)用01 class adder02 int add(int a,int b)return a+b;03 double add(double i,double j)return i+j;0

11、4 int add(int p, int q, int r) return p+q+r;05 06 class Ex07_6_107 public static void main(String args)08 int c;09 double k;10 int s;11 adder ad= new adder(); 范例86:續(xù)12 c=ad.add(1, 2);13 System.out.println(int c = + c); 14 k=ad.add(3.3, 4.4);15 System.out.println(double k = + k); 16 s=ad.add(5, 6, 7)

12、;17 System.out.println(int s = + s);18 19 范例87:構(gòu)造函數(shù)重載的應(yīng)用 01 class adder02 int c;03 double k; 04 adder(int a, int b) 05 c= a+b;06 System.out.println(int c = + c);07 范例87:續(xù)08 adder(double i, double j)09 k= i+j;10 System.out.println(double k = + k);11 12 13 class Ex07_6_214 public static void main(Stri

13、ng args)15 adder add_int = new adder(2, 3);16 adder add_double = new adder(2.2, 3.3);17 18 7-7 public/private修飾符(Modifications)在類內(nèi)聲明的變量(Variables)或方法(Methods) 均可前置限制修飾符(Modifications) “public”、“private”,以限制其使用環(huán)境與時機。范例88:變量或方法無前置修飾符(Default Modifications) 的應(yīng)用01 class Mynumber 02 int i;03 04 class Ex0

14、7_7_1 05 public static void main(String args) 06 Mynumber M = new Mynumber(); 07 M.i = 10;08 System.out.println(Defualt Variable M.i = + M.i);09 10 范例88:變量或方法無前置修飾符(Default Modifications) 的應(yīng)用01 class Mynumber 02 int i;03 04 class Ex07_7_1 05 public static void main(String args) 06 Mynumber M = new M

15、ynumber(); 07 M.i = 10;08 System.out.println(Defualt Variable M.i = + M.i);09 10 范例89:變量或方法前置修飾符public的應(yīng)用01 class Mynumber 02 public int i;03 04 class Ex07_7_2 05 public static void main(String args) 06 Mynumber M = new Mynumber(); 07 M.i = 10;08 System.out.println(Public Variable M.i = + M.i);09 10

16、 范例90:變量或方法前置修飾符private的錯誤應(yīng)用01 class Mynumber 02 private int i;03 04 class Ex07_7_3 05 public static void main(String args) 06 Mynumber M = new Mynumber();07 M.i = 10;08 System.out.println(Private Variable M.i = + M.i);09 10 范例91:變量或方法前置修飾符private時,只允許自身對象內(nèi)的方法使用 01 class Study 02 private int credit=

17、0;03 public void addcredit(int i) credit += i; 04 public int totalcredit() return credit; 05 06 class Ex07_7_4 07 public static void main(String args) 08 Study joe = new Study();09 Study george = new Study();范例91:續(xù)10 joe.addcredit(12);11 george.addcredit(9); 12 joe.addcredit(6);13 george.addcredit(3

18、);14 System.out.println(joe studied:+joe.totalcredit()+credites);15 System.out.println(george studied:+george.totalcredit()+credites);16 17 7-8 this關(guān)鍵字Java是面向?qū)ο笳Z言,每一個類猶如是一個對象個體,除了有其本身的類名稱外,也可以用“this” 作為自己本身的代名詞,這在進行程序設(shè)計時可達到簡化的效果,讀者將會在之后復(fù)雜的網(wǎng)絡(luò)程設(shè)計中,感受到其功效。 “this”的功能除了是其本身類代名詞外,也可作為重載構(gòu)造函數(shù)間的調(diào)用橋梁,將更增進數(shù)據(jù)的安

19、全性。范例92:this為所屬類對象(Class Objects) 的代名詞01 class Mynumber 02 private int n;03 public void setnumber(int i)this.n = i;04 public int getnumber()return n;05 06 class Ex07_8_1 07 public static void main(String args) 08 Mynumber M = new Mynumber();09 M.setnumber(10);10 System.out.println(M.getnumber : + M.

20、getnumber();11 12 范例93:this在構(gòu)造函數(shù)內(nèi),也是所屬類對象的代名詞01 class Mynumber 02 private int n; 03 public Mynumber(int i)this.n = i;04 public int getnumber()return n;05 06 class Ex07_8_2_1 07 public static void main(String args) 08 Mynumber M = new Mynumber(10);09 System.out.println(M.getnumber : + M.getnumber();1

21、0 11 范例94:在必要時,this也是重載(Overload) 構(gòu)造函數(shù)的代名詞01 class Mynumber 02 private int n; 03 public Mynumber(int i)this.n = i;04 public Mynumber(int j, String s)this(j); 05 public int getnumber()return n;06 07 class Ex07_8_2_2 08 public static void main(String args) 09 Mynumber M = new Mynumber(10, abcde);10 Sy

22、stem.out.println(M.getnumber : + M.getnumber();11 12 范例95:當一個構(gòu)造函數(shù)以this()調(diào)用另一個重載構(gòu)造函數(shù)時,this()必須置于該構(gòu)造函數(shù)的第1行 01 class Mynumber 02 private int n; 03 public Mynumber(int i)this.n= i;04 public Mynumber(int j, String s)05 System.out.println(Here is a OverloadConstructor);06 this(j);07 范例95:續(xù)08 public int ge

23、tnumber()return n;09 10 class Ex07_8_2_3 11 public static void main(String args) 12 Mynumber M = new Mynumber(10, abcde);13 System.out.println(M.getnumber : +M.getnumber();14 15 7-9 嵌套類(Nested Class)設(shè)有類A、類B,如果B存在于A的范圍內(nèi),則B是A的 “子類(Sub Class或Inner Class)”。如此排列稱為 “嵌套類(Nested Classes)”。范例96:成員類(Member Cl

24、ass) 產(chǎn)生新對象的步驟01 class MyClass 02 class memb1 03 int i;04 void seti() i = 10;05 int geti() return i;06 07 class memb2 08 int i;09 void seti() i = 20;10 int geti() return i;11 12 范例96:續(xù)13 class Ex07_9_1_1 14 public static void main(String args) 15 MyClass M = new MyClass(); 16 MyClass.memb1 m1 = M.new

25、 memb1();17 m1.seti();18 System.out.println(m1.geti : + m1.geti(); 19 MyClass.memb2 m2 = M.new memb2();20 m2.seti();21 System.out.println(m2.geti : + m2.geti();22 23 范例97:修飾符public/private與成員類的應(yīng)用 01 class MyClass 02 public class memb1 03 int i;04 void seti() i = 10;05 int geti() return i;06 07 priva

26、te class memb2 08 int i;09 void seti() i = 20;10 int geti() return i;11 12 范例97:續(xù)13 class Ex07_9_1_2 14 public static void main(String args) 15 MyClass M = new MyClass(); 16 MyClass.memb1 m1 = M.new memb1();17 m1.seti();18 System.out.println(m1.geti : + m1.geti(); 19 MyClass.memb2 m2 = M.new memb2()

27、;20 m2.seti();21 System.out.println(m2.geti : + m2.geti();22 23 范例98:成員類與聲明變量的關(guān)系01 class Ex07_9_1_3 02 int i,j;03 private MyMember memb; 04 class MyMember 05 int m,n,o;06 MyMember() 07 i = 2;08 Ex07_9_1_3.this.j = 4; 09 m = 12;10 this.n = 14;11 MyMember.this.o = 16;12 13 public int getO() return o;

28、14 范例98:續(xù)15 public Ex07_9_1_3 () 16 memb = new MyMember();17 System.out.println(m= +memb.m + ,+18 n= +memb.n + ,+19 o= +memb.getO();20 21 public int getJ() return j; 22 public static void main(String args) 23 Ex07_9_1_3 a = new Ex07_9_1_3 ();24 System.out.println(i= +a.i +,+25 j= +a.getJ();26 27 范例99:局部類與實例代碼塊的關(guān)系01 class Ex07_9_2_1 02 int i;03 public Ex07_9_2_1() 04 class MyLocal 05 i

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論