深入Java物件導向之預備篇(2.方法研究) (轉)
的方法
方法(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..*;
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+"
";
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)+"
The 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中的好比各種蔬菜佐料.
它們現在就擺在你的面前,而你現在只需要用這些蔬菜佐料用你自己的手藝(方法)來給我們做一道豐盛的晚餐(程式).並不需要你去知道這菜是怎麼來的,怎麼種的菜,怎麼配的料.一切都看你的了.
注:java中方法呼叫的常見錯誤:
1.在方法的定義中不寫返回值型別會產生語法錯誤
2.從一個返回型別宣告為void的方法中返回一個值會產成語法錯誤
3.在方法參數列的右括號的加一個分號是一個錯誤.
4.傳遞給方法的參量與對應的引數型別不相容是語法錯誤
5.在一個方法中定義另一個方法將產生語法錯誤
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-963052/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PHP物件導向深入研究之【物件生成】PHP物件
- PHP物件導向深入研究之【高階特性】PHP物件
- [Java物件導向]static方法Java物件
- 二、Java之物件導向Java物件
- PHP基礎之物件導向篇PHP物件
- PHP物件導向深入研究之【組合模式與裝飾模式】PHP物件模式
- 物件導向之封裝(Java)物件封裝Java
- 2.物件導向設計原則物件
- [.net 物件導向程式設計深入](0) 開篇物件程式設計
- PHP物件導向深入研究之【繼承】,減少程式碼重複PHP物件繼承
- Java正式上路之物件導向二Java物件
- Java正式上路之物件導向一Java物件
- java物件導向程式設計(轉)Java物件程式設計
- Java — 物件導向Java物件
- Java物件導向Java物件
- [Java物件導向]Java物件
- JavaScript之坑了我--物件導向預熱JavaScript物件
- JAVA物件導向基礎--物件導向介紹Java物件
- java學習——物件導向之繼承Java物件繼承
- Golang 物件導向深入理解Golang物件
- PHP物件導向深入研究之【名稱空間】與【自動載入類】PHP物件
- Java:Java的物件導向Java物件
- java的物件導向Java物件
- Java物件導向(一)Java物件
- java物件導向(中)Java物件
- java物件導向(上)Java物件
- Java 物件導向概述Java物件
- java物件導向(2)Java物件
- java物件導向(1)Java物件
- java物件導向(3)Java物件
- java物件導向(4)Java物件
- java物件導向(5)Java物件
- Java物件導向概述Java物件
- JAVA物件導向思想Java物件
- Java物件導向——類與物件Java物件
- JAVA(一)JAVA基礎/物件導向基礎/高階物件導向Java物件
- Dart語法篇之物件導向基礎(五)Dart物件
- 從物件導向到模式再到真正的物件導向 (轉)物件模式