分享
 
 
 

深入Java面向对象之预备篇(2.方法研究)

王朝java/jsp·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

Java的方法调用

方法(method)的定义:

1 在java中程序员可以把在一个程序中多次用到的某个特定的任务

定义为方法.这些方法有时被成为(程序员自定义方法:programmer-defined method).

2 而方法可以由方法调用(method call)来激活(invoke)以执行其他任务.据个例子:

老板(调用者)要求员工(被调用者)完成一项任务,而老板并不知道工人怎样完成任务,而工人中

组织者比如车间主任他接到任务后,分配给其他一线的工人.方法和它的调用就象上述者种关系一样.

3 方法调用的好处,方法使程序员能够将程序模块化,其优点在于,1.这种分而治之的方法使软件的开发

更易于管理,2.另一个优点是"软件的复用性"即利用已有的方法构成新的程序,这一点也是面向对象程序设计的

重点突出的一点.3.就是在于避免程序中的代码的重复使用.将代码打包成方法就可以通过调用方法,在程序中的几个不同的位置执行该代码.

从而加快程序执行速度.

下面用一个例子可以很好的说明方法的调用.

1 //Fig.1-1:SquareInt.java

2 import java.awt.Container;

3 import javax.swing.*;

4 public class SquareInt extends JApplet{

5 public void init() {

6 String output="";

7 JTextArea outputArea=new JTextArea(10,20);

8 Container c=getContentPane();

9 c.add(outputArea);

10 int result;

11 for(int x=1;x<=10;x++){

12 result=square(x);

13 output+="The square of"+x+"is"+result+"\n";

14 }

15 outputArea.setText(output);

16 }

17 public int square(int y)

18 { return y*y}

19 }

20 }

此例是一个计算平方的applet,其中的循环控制将1-10的平方数在applet的Container中显示出来.

我们来逐步分析其中的方法调用:

1 .程序第7行中 JTextArea outputArea=new JTextArea(10,20);声明了 JTextArea 引用 outputArea,并赋值给方法JTextArea调用结果.

方法JTextArea outputArea=new JTextArea(10,20);返回一个applet的内容窗格引用,可以显示多行文本的GUI构件.

2.同样的第8行Container c=getContentPane();声明了Contanier引用c,并赋值给方法c=getContentPane()调用结果.这个方法可以返回一个applet的内容窗格引用,可用于在applet中显示文本框,

而c.add(outputArea);把outputArea引用的JTextArea GUI构件放入对象applet中.使applet可以显示它

3 第15行outputArea.setText(output);使用方法setText把outputArea的文本置为output串

4 而上述3种方法可以用这样的语言来通俗描述:

我现在创建一个对象叫outputArea 然后在用JTextArea中的方法 显示一个10行20列的文本框,(目的达到),然后那我又想把它能放入applet中,于是就

又创建对象c 而c引用了Container中的getContentPane()方法.(ok 成功了)然后在用方法setText将文本显示出来.

5.方法重载:方法可以定义几个同名的方法,只要这些方法具有不同的参数集合(参数阿数量.类型.和次序),这称为方法重载(method overload)当调用一个重载的方法时,java的编译器通过检查调用语句中的参数的数量,类型和次序就可以选择适当的方法.方法重载一般用来创建对不同类型的数据进行类似的操作方法.

重载方法是根据方法名及参数类型的组合,参数的顺序对编译器来说很重要,方法不能以返回值类型来区分,

方法重载可以有不同返回值类型.但一定要有不同的参数表.

例如上例就可以使方法重载

import java awt.*;

import javax.swing.*;

public class MethodOverload extends JApplet{

JTextArea.outputArea;

public void init(){

outputArea=new JTextArea(2,20);

Container c=get ContentPane();

c.add(outputArea);

outputArea.setText("The square of integer 7 is"+square(7)+"\nThe square of double 7.5 is"+square(7.5));

}

public int square(int x)

{

return x*x;

}

public double square(double y)

{

return y*y;

}

}

此程序就是根据程序中返回的值来确定 return的方法.

总结:在java中类似这些方法还有很多,比如 Integer.parseInt JOptionPane.showMessageDialog

大多数这些方法很好的体现了 java的 upcasting思想.所以方法的调用在java程序设计中是很重要的.而方法的调用就象在做饭一样,java中的api好比各种蔬菜佐料.

它们现在就摆在你的面前,而你现在只需要用这些蔬菜佐料用你自己的手艺(方法)来给我们做一道丰盛的晚餐(程序).并不需要你去知道这菜是怎么来的,怎么种的菜,怎么配的料.一切都看你的了.

注:java中方法调用的常见错误:

1.在方法的定义中不写返回值类型会产生语法错误

2.从一个返回类型声明为void的方法中返回一个值会产成语法错误

3.在方法参数表的右括号的加一个分号是一个错误.

4.传递给方法的参量与对应的参数类型不相容是语法错误

5.在一个方法中定义另一个方法将产生语法错误

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有