Overloading Method จัดทำโดย : Mr.POP พิมพ์
 Untitled Document

สวัสดีครับ บทความในตอนนี้ผมจะขอพูดเกี่ยวกับเรื่อง Method กันต่อนะครับ ซึ่งจะพูดถึงเรื่อง Overloading Method เรามาดูความหมายของ Overloading Method กันนะครับ

Overloading Method
หมายถึง Method ที่มีชื่อของ Method เป็นชื่อเดียวกัน แต่มี type ของ Method ต่างกัน ซึ่งจะทำให้มีหน้าที่การทำงานแตกต่าง กันด้วย เราจะเรียกกรณีของ Method ที่เกิดขึ้นนี้ว่า “Overloading Method” เรามาดูตัวอย่างกันเลยนะครับ


อธิบายโปรแกรม โปรแกรมนี้จะเป็นโปรแกรมที่ใช้หาค่ามากสุดของตัวเลข 2 ตัว ซึ่งเป็นตัวอย่างจากบทความเก่านะครับ น่าจะคุ้นตากันมาแล้วถ้าได้อ่านบทความเก่า แต่จะปรับให้สามารถหาค่าได้ 2 แบบ คือ int และ double เราจะเห็น Method ชื่อ max อยู่ 2 Method นะครับ แต่ต่างกันตรงที่ Type หน้า Method และการรับพารามิเตอร์ของทั้งสองครับ เห็นไหมครับว่า Metohd แรกรับพารามิเตอร์แบบ double แต่ Method ที่ 2 นั้นเป็น int ครับ ถ้าเป็นลักษณะแบบนี้เราจะเรียกว่าเป็น “Overloading Method” การทำงานของ Method แบบนี้คือ จะทำงานตามประเภท ของพารามิเตอร์ที่ส่งให้มันครับ

เรามาดูทึ่ main กันครับจะเห็นว่ามีการเรียกใช้ Method max 2 แบบด้วยกัน คือ
แบบแรก TM.max(3,4) นั้น Method ที่ถูกเรียกใช้งาน คือ int max(int num1,int num2)
แบบที่สอง TM.max(4.7,5.9) นั้น Method ที่ถูกเรียกใช้งาน คือ double max(double num1,double num2)

ลองมาดูอีกสักตัวอย่างครับ ตัวอย่างนี้จะเกิด Overloading ที่ Constructor Method ครับ

อธิบายโปรแกรม จากโปรแกรมนี้ภาพรวมของโปรแกรมคือ การหาพื้นที่ของวงกลม ให้สังเกตที่ Constructor Method นะครับ มีอยู่ 2 แบบครับ แบบแรก Circle(double r) นั้นรับพารามิเตอร์เป็น double ครับ คือ ค่าของรัศมีที่เป็นตัวเลขใดๆ ก็ได้ที่เราต้อง การหาพื้นที่ของวงกลม ส่วนแบบที่สอง Circle( ) ไม่รับพารามิเตอร์ครับ คือ ถ้าเราไม่ส่งค่ารัศมีให้มันจะมาเซตค่าของรัศมีเป็น 1.0 ที่ Method นี้โดยอัตโนมัติ

ที่ main มีการสร้าง object ชื่อ c ขึ้นมา ให้สังเกตว่ามีการส่งค่า 2.0 ไปให้ Constructor ซึ่งหมายความว่า Circle(double r) จะทำงานจึงไปเซตค่า radius เป็น 2.0 แล้วคำนวณผลลัพธ์เป็นค่าพื้นที่ของวงกลมรัศมี 2.0 ออกมานั่นเอง ให้เราลองลบค่า 2.0 ในวงเล็บออกแล้วรันโปรแกรมดูนะครับว่าผลจะเป็นอย่างไร?

ข้อสรุป
ข้อสรุปสำหรับบทความนี้ก็คือ เราได้เรียนรู้ความหมายของ Overloading Method ครับว่าเป็น Method ที่มีชื่อซ้ำกันแต่ พารามิเตอร์ต่างกันและมันจะทำงานตามหน้าที่ของมันเองครับไม่ก้าวก่ายกันขึ้นอยู่กับการเรียกใช้ของเราเอง โดย Overloading Method นี้อาจจะเกิดที่ Constructor ก็ได้(อย่าลืมว่า Constructor ก็คือ Method นั่นเองมันสามารถมีคุณสมบัติ Overloading ได้) และจากตัวอย่างที่ผมยกให้ดูจะมีแค่ 2 Method ที่เป็น Overloading แต่จริงๆ แล้วจะมีกี่ Method ก็ได้นะครับขึ้นอยู่กับ พารามิเตอร์ที่เราจะสร้างให้มันทำงาน

อธิบายมายืดยาวไม่รู้จะมีใครขี้เกียจอ่านกันหรือเปล่า? นี่ก็เป็นอีกบทบาทหนึ่งของ Method นะครับในตอนต่อไปก็ยังวนเวียนอยู่ใน เรื่อง Method นี่อีกครับ แต่จะเป็นเรื่องของการส่งพารามิเตอร์ว่ามีวิธีการส่งแบบไหนได้บ้าง ติดตามตอนต่ไปนะครับสวัสดีครับ....

 

คุณอาจสนใจ
ครอปส่วนที่ต้องการบนรูปภาพด้วย Photoshop 7
Ching Ching (134,755 - 04 เม.ย. 51)
การสร้าง Form
อ้อม (43,189 - 30 เม.ย. 50)
FreeCommander สำหรับคนเบื่อ Windows Explorer
เว็บไทยดีดี (13,956 - 22 ก.ย. 50)
USB Flash Drive Manager
เว็บไทยดีดี (25,260 - 03 พ.ค. 51)
แนะนำการใช้งาน Filter -> Artistic
first (54,904 - 11 ก.พ. 51)
ทำ effect ตอนเปลี่ยนหน้า
สายลม (75,402 - 29 มี.ค. 51)
การใส่ link ใน flash
Charoen (154,416 - 28 พ.ย. 50)
รู้จักกับภาษาของคอมพิวเตอร์
เว็บไทยดีดี (17,031 - 29 ก.ย. 50)