สนับสนุนโดย

วันอาทิตย์ที่ 25 พฤศจิกายน พ.ศ. 2561

method overloading

หัวข้อวันนี้เป็นอีกเรื่องที่เราจะได้พบบ่อยๆ ในการเขียนโปรแกรมด้าน OOP นั่นคือการเขียนชื่อ method ชื่อเดียวกันเป้ะ แต่แตกต่างกันที่ชนิด หรือจำนวนของ parameter นั่นเองครับ

ลองดูตัวอย่างข้างล่างนี้กันก่อน สมมุติเรามี method 3 ตัว
int calNumber(int a, int b)
int calNumber(int a, int b, int c)
int calNumber(int a, int b, String str)



ข้อสังเกตุจะพบว่า ตัวแรกกับตัวที่สอง แตกต่างกันที่จำนวนของ parameter ส่วนตัวที่สองกับสาม แตกต่างกันที่ชนิดของ parameter ครับ

การเขียนแบบนี้ทำให้โปรแกรมมีโค้ดที่ยืดหยุ่น รองรับการใช้งานได้หลากหลาย ไม่ต้องไปสร้าง method หลายๆ ชื่อ แต่เราสร้างชื่อเดียว รองรับ parameter หลายแบบแทน

มาดูโค้ดจริงกัน


package hellojava;

public class MethodOverloading {
    public static void main(String[] args) {
        MethodOverloading m = new MethodOverloading();
        System.out.println("a + b = " + m.calNumber(5, 10));
        System.out.println("a + b + c = " + m.calNumber(5, 10, 15));
        System.out.println("a + b by String = " + m.calNumber(0, 0, "Add Number"));
    }
    
    int calNumber(int a, int b) {
        return a + b;
    }
    
    int calNumber(int a, int b, int c) {
        return a + b + c;
    }
    
    int calNumber(int a, int b, String str) {
        System.out.println(str);
        return a + b;
    }
}


ผลการทำงาน
a + b = 15
a + b + c = 30
Add Number
a + b by String = 0

ไม่มีความคิดเห็น:

แสดงความคิดเห็น