官术网_书友最值得收藏!

2.3.1 重載

同一個類中如果同時存在兩個以上的方法有同一個名字,在這種情況下,我們說方法被重載了,這個過程被稱為方法重載。但虛擬機如何判斷到底要使用哪個方法工作呢?

調用重載方法時,Java根據參數列表中參數的個數、參數的數據類型和參數的順序來表明實際調用的是哪一個方法。因此,重載方法在參數類型和(或)數目方面不能相同。虛擬機遇到一個對重載方法的調用時,它會執行其參數與調用參數相匹配的方法。

例2-10】 使用類的重載構造方法生成不同的長方形對象,計算各長方形的面積。

            class Rectangle{
                double length;                          // 長
                double width;                           // 寬
                                                    // 定義三個重載的構造方法
                public Rectangle(){                       // 無參構造方法
                    length = 1.0;
                    width = 1.0;
                }
                public Rectangle(double length){             // 帶參構造方法
                    this.length = length;
                    this.width = length;
                }
                public Rectangle(double length,double width){     帶參構造方法
                    this.length = length;
                    this.width = width;
                }
                public double area(){                      // 求長方形的面積
                    return length * width;
                }
                public void display(){
                    System.out.println("長方形的面積是:" + this.area());
                }
            }
            public class RectangleDemo{
            public static void main (String args[]){
                Rectangle rect1=new Rectangle();           // 調用無參構造方法
              rect1.display();
              Rectangle rect2=new Rectangle(6);          // 調用有一個參數的構造方法
              rect2.display();
              Rectangle rect3=new Rectangle(10,20);       // 調用有兩個參數的構造方法
              rect3.display();
          }
          }

該程序的運行結果如下:

            長方形的面積是:1.0
            長方形的面積是:36.0
            長方形的面積是:200.0

可以看到,在長方形類Rectangle中構造方法Rectangle()被重載了3次。第一個版本沒有參數,第二個版本有一個double型參數,第三個版本有兩個double型參數。Java編譯器根據重載方法調用時提供的實際參數選擇執行對應的重載方法。

主站蜘蛛池模板: 无为县| 化隆| 大庆市| 紫阳县| 扬州市| 常山县| 炎陵县| 同仁县| 巴马| 鄂伦春自治旗| 武隆县| 囊谦县| 专栏| 垣曲县| 双城市| 商河县| 望江县| 兰考县| 诏安县| 将乐县| 阜康市| 敖汉旗| 东丽区| 松潘县| 莱州市| 宜宾市| 南阳市| 永州市| 西乌珠穆沁旗| 富川| 增城市| 德令哈市| 平昌县| 罗源县| 江孜县| 昂仁县| 岫岩| 金寨县| 石城县| 清新县| 台南市|