java典型应用彻查1000例第一卷入门源码习题bookjavavol-1java_第1页
java典型应用彻查1000例第一卷入门源码习题bookjavavol-1java_第2页
java典型应用彻查1000例第一卷入门源码习题bookjavavol-1java_第3页
java典型应用彻查1000例第一卷入门源码习题bookjavavol-1java_第4页
java典型应用彻查1000例第一卷入门源码习题bookjavavol-1java_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第七章方法(Methods)7-1 简介Java语言的方法(Methods),犹如其他高级语言程序中的子程序(Subroutines)或函数(Functions),是具有解决问题功能的程序块,因为Java为面向对象语言,因此在类、对象等范畴下增添了一些使用方法,这些方法都是学习Java的基础必读,本章将以实例基础,对其进行清晰地讲解。7-2 方法(Methods)设计程序是为了要借程序的功能工作,帮助解决问题。在其他程序语言中,称作 “子程序(Subroutine) / 函数(Function)”,在Java语言中,称作 “方法(Methods)”。为了方便,将常用的功能需求,先设计出一些内建

2、子程序(Subroutine) / 函数(Function),或Java的方法(Methods),储存于系统链接库内,以后设计程序时,根据需要,由主程序调用有关的子程序/函数或方法,组成一个功能强大的工作群。范例79:设类class Study内有方法addcredit()、totalcredit()程序代码,试描述其执行功能01 class Study02 int credit = 0;03 void addcredit(int i) credit += i; 04 int totalcredit() return credit; 05 范例80:主类如何调用使用方法 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:续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)方法也是一样,有其所属的类对象,当所属类对象生存时,该方法才可被执行使用,如此随所属类对象生存而生存的方法称为 “生存方法(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) 的应用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 构造函数 (Constructor)在日常生活中,我们身边的人、事、地、物都有一个代表性的印像。张三是有能力的人、李四是浪漫的人、书房是看书的房间等。以书房为例,可以用作打牌、下棋、睡觉等,但其代表性的主要功能仍是看书。 Java语言亦有如上述的对象特性,一个类程序含有多个不同功能的方法,其中被选为代表性功能的方法是该类的 “构造函数(Cons

8、tructor)”。范例84:构造函数的应用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:类程序内,无法直接执行表达式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语言也有类似的对象行为,类内有多个方法,名称相同、功能相同,不同者为参数的不同。(1) 参数的数据型态不同。(2) 参数的数量不同。当被调用执行时,参数型态与数量均符合的方法,自动出面接受执行,如此对象行为称为 “方法重载(Method Overloading)”。范例86:方法重载的应用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:续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:构造函数重载的应用 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:续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)在类内声明的变量(Variables)或方法(Methods) 均可前置限制修饰符(Modifications) “public”、“private”,以限制其使用环境与时机。范例88:变量或方法无前置修饰符(Default Modifications) 的应用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) 的应用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的应用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的错误应用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时,只允许自身对象内的方法使用 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:续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关键字Java是面向对象语言,每一个类犹如是一个对象个体,除了有其本身的类名称外,也可以用“this” 作为自己本身的代名词,这在进行程序设计时可达到简化的效果,读者将会在之后复杂的网络程设计中,感受到其功效。 “this”的功能除了是其本身类代名词外,也可作为重载构造函数间的调用桥梁,将更增进数据的安

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在构造函数内,也是所属类对象的代名词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) 构造函数的代名词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:当一个构造函数以this()调用另一个重载构造函数时,this()必须置于该构造函数的第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:续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)设有类A、类B,如果B存在于A的范围内,则B是A的 “子类(Sub Class或Inner Class)”。如此排列称为 “嵌套类(Nested Classes)”。范例96:成员类(Member Cl

24、ass) 产生新对象的步骤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:续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与成员类的应用 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:续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:成员类与声明变量的关系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:续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:局部类与实例代码块的关系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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论