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.在一个方法中定义另一个方法将产生语法错误