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

类别:Java 点击:0 评论:0 推荐:

                                              Java的方法调用
方法(method)的定义:
            1 在java中程序员可以把在一个程序中多次用到的某个特定的任务
定义为方法.这些方法有时被成为(程序员自定义方法:programmer-defined method).
            而方法可以由方法调用(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.在一个方法中定义另一个方法将产生语法错误

本文地址:http://com.8s8s.com/it/it17082.htm