วิธีการโอเวอร์โหลดใน Java [พร้อมตัวอย่าง]

เผยแพร่แล้ว: 2020-11-12

Java เป็นภาษาอเนกประสงค์ที่เป็นไปตามแนวคิดของการเขียนโปรแกรมเชิงวัตถุ คุณสมบัติมากมายของการเขียนโปรแกรมเชิงวัตถุทำให้โค้ดเป็นแบบโมดูลาร์ ใช้ซ้ำได้ ยืดหยุ่น และง่ายต่อการดีบัก มีคุณสมบัติหลายอย่างของการเขียนโปรแกรมเชิงวัตถุ เช่น การสืบทอด ความหลากหลาย การห่อหุ้ม และสิ่งที่เป็นนามธรรม

ในบทความนี้ เราจะพูดถึง วิธีการโอเวอร์โหลดใน Java ซึ่งเป็นประเภทของความหลากหลาย

สารบัญ

ความหลากหลาย

Polymorphism หมายถึงความสามารถในการปรากฏในรูปแบบต่างๆ อนุญาตให้ใช้วิธีเดียวกันในการแสดงพฤติกรรมที่แตกต่างกันโดยใช้วิธีการที่แตกต่างกัน Polymorphism มีสองประเภท: Method Overloading และ Method Overriding เมธอดโอเวอร์โหลดหมายความว่าเมธอดหลายเมธอดมีชื่อเดียวกัน แต่มีอาร์กิวเมนต์ต่างกัน

เรียนรู้การสร้างแอปพลิเคชัน เช่น Swiggy, Quora, IMDB และอื่นๆ

การแทนที่เมธอดหมายความว่าคลาสย่อยสามารถมีเมธอดที่มีชื่อเดียวกับคลาสพาเรนต์ แต่มีการใช้งานที่แตกต่างกัน เราจะพูดถึงวิธีการโอเวอร์โหลดโดยละเอียดในบทความนี้ สำหรับการเอาชนะวิธีการ คุณสามารถเยี่ยมชม upGrad และรับข้อมูลเชิงลึก

วิธีการโอเวอร์โหลดใน Java

วิธีการโอเวอร์โหลดใน Java เป็นหนึ่งในคุณสมบัติที่มีประโยชน์มากที่สุดของภาษาเชิงวัตถุ อนุญาตให้คลาสมีหลายวิธีที่มีชื่อเดียวกัน ความแตกต่างเพียงอย่างเดียวที่เมธอดเหล่านี้มีคือรายการพารามิเตอร์ต่างๆ ที่ส่งผ่านเมธอดเหล่านี้

สามารถเข้าใจได้ในแง่ง่ายด้วยตัวอย่างง่ายๆ การเพิ่มคลาสมีสองวิธีที่ชื่อ add() วิธีหนึ่งมีพารามิเตอร์ int a และ int b ในขณะที่อีกวิธีหนึ่งมีพารามิเตอร์จำนวนเต็มสามตัว ได้แก่ int a, int b และ int c ดังนั้นเมธอด add() จึงเรียกว่าโอเวอร์โหลด

เมธอดที่จะดำเนินการจะขึ้นอยู่กับจำนวนของพารามิเตอร์ที่ส่งผ่านในคำสั่งการเรียกเมธอด เพื่อแสดงตัวอย่าง add(20,30) จะเรียกวิธีการ add() ที่มีพารามิเตอร์สองตัว และ add(10,20,30) จะเรียกวิธีการเพิ่มด้วยพารามิเตอร์สามตัว

วิธีต่างๆ ในการโอเวอร์โหลดวิธีการ

วิธีการโอเวอร์โหลดใน Java สามารถทำได้หลายวิธี ตามที่เราเข้าใจแล้วว่าเป็นรายการของพารามิเตอร์ที่แยกความแตกต่างของทั้งสองวิธีที่มีชื่อเดียวกันใน Java วิธีการต่าง ๆ ของ วิธีการโอเวอร์โหลดใน Java สามารถทำได้โดยการเปลี่ยนแปลงรายการพารามิเตอร์ด้วยวิธีใดวิธีหนึ่งด้านล่าง:

  1. จำนวนพารามิเตอร์
  2. ชนิดข้อมูลของพารามิเตอร์
  3. ลำดับของชนิดข้อมูลของพารามิเตอร์

จำนวนพารามิเตอร์

จากชื่อที่ชัดเจนว่าจะมีจำนวนพารามิเตอร์ที่แตกต่างกันในวิธีการโอเวอร์โหลดซึ่งจะตัดสินว่าวิธีใดที่จะดำเนินการเมื่อเห็นคำสั่งเรียกเมธอด ด้านล่างนี้คือ วิธีการโอเวอร์โหลดใน Java โดยที่จำนวนพารามิเตอร์จะแตกต่างกันไป

วิธีที่ 1: เพิ่ม (int, int)

วิธีที่ 2: เพิ่ม (int, int, int)

คำสั่งเรียกเมธอด add(20,30) จะดำเนินการเมธอดที่ 1 และคำสั่งเรียกเมธอด add(10,20,30) จะดำเนินการเมธอดที่ 2

ชนิดข้อมูลของพารามิเตอร์

ใน การโอเวอร์โหลดเมธอด ประเภทนี้ ใน Java เมธอด java ทั้งสองของคลาสมีชื่อเหมือนกัน และจำนวนพารามิเตอร์จะเท่ากันหรือต่างกันก็ได้ แต่ประเภทข้อมูลของพารามิเตอร์จะต่างกัน

วิธีที่ 1: เพิ่ม (int, int)

วิธีที่ 2: เพิ่ม (int, float)

วิธีที่ 3: เพิ่ม (ลอย, ลอย)

ในวิธีการข้างต้น ชื่อเมธอดเหมือนกัน แต่ชนิดข้อมูลของพารามิเตอร์ต่างกัน ดังนั้นคำสั่งเรียกเมธอด add(2, 5.5) จะดำเนินการเมธอดที่ 2 ในทำนองเดียวกัน add(7.5, 10.25) จะดำเนินการตามวิธีที่ 3

ลำดับของชนิดข้อมูลของพารามิเตอร์

ในการโอเวอร์โหลดเมธอดประเภทนี้ ใน Java ทั้งชื่อเมธอดและจำนวนพารามิเตอร์จะเท่ากัน แต่ความแตกต่างอยู่ที่ลำดับของประเภทข้อมูลของพารามิเตอร์เหล่านี้ ด้านล่างนี้เป็นตัวอย่างของวิธีการโอเวอร์โหลด:

วิธีที่ 1: เพิ่ม (int, float)

วิธีที่ 2: เพิ่ม (ลอย int)

ในที่นี้ การเรียกคำสั่งเพื่อเพิ่ม (100, 75.5) จะเรียกเมธอดที่ 1 เพื่อดำเนินการ และเพิ่ม (55.25, 150) จะดำเนินการตามวิธีที่ 2

ดังนั้นจึงเป็นพารามิเตอร์ในคำสั่งการเรียกที่จะกำหนดวิธีการโอเวอร์โหลดที่จะถูกดำเนินการ

อ่าน: วิธีการโอเวอร์โหลดใน Java

ทำไมเราต้องการวิธีการโอเวอร์โหลดใน Java?

หากโปรแกรมเมอร์ได้สร้างเมธอดใน Java เพื่อดำเนินการบางอย่าง แต่ต่อมาเป็นส่วนหนึ่งของข้อกำหนด โปรแกรมเมอร์ต้องการวิธีการเดียวกันเพื่อดำเนินการกับพารามิเตอร์ที่ต่างกัน ดังนั้นโปรแกรมเมอร์ก็สามารถใช้คุณลักษณะของ เมธอดโอเวอร์โหลดใน Java ได้ วิธีนี้จะช่วยให้โปรแกรมเมอร์สร้างวิธีการทำงานที่คล้ายคลึงกันโดยใช้ชื่อเดียวกันเพื่อไม่ให้จำชื่อในภายหลัง

มาทำความรู้จักข้อดีของการทำ method overloading ใน Java กันดีกว่า

ข้อดีของการดำเนินการวิธีการโอเวอร์โหลดใน Java

ด้านล่างนี้คือข้อดีบางประการของ วิธีการโอเวอร์โหลดใน Java :

  • ช่วยเพิ่มความสามารถในการอ่านโค้ดที่เขียน
  • เพิ่มความสะอาดให้กับโค้ดที่เขียน
  • สามารถใช้กับตัวสร้างได้เช่นกัน เพื่อให้เราสามารถสร้างวัตถุที่แตกต่างกันโดยการส่งผ่านข้อมูลที่แตกต่างกัน
  • ช่วยให้โปรแกรมเมอร์มีความยืดหยุ่นในการเรียกวิธีการต่างๆ ที่มีชื่อคล้ายกัน
  • วิธีการโอเวอร์โหลดสามารถมีประเภทการส่งคืนที่แตกต่างกัน

ต้องอ่าน: อาชีพใน Java

กฎสำหรับการโอเวอร์โหลดเมธอดใน Java

  • กฎข้อแรกคือการเปลี่ยนวิธีการลงนาม ลายเซ็นเมธอดหมายถึงจำนวนอาร์กิวเมนต์ ลำดับของพารามิเตอร์ และชนิดข้อมูลของพารามิเตอร์
  • หากเราเปลี่ยนเฉพาะประเภทการส่งคืนของเมธอดโดยคงชื่อเมธอดและอาร์กิวเมนต์ไว้เหมือนเดิม วิธีนี้จะไม่เป็นการโอเวอร์โหลดเมธอด แต่จะทำให้เกิดข้อผิดพลาดในการรวบรวม

จุดสำคัญเกี่ยวกับวิธีการโอเวอร์โหลดใน Java

  • โค้ดใดๆ ที่เขียนด้วย Java ไม่สามารถมีเมธอดที่มีชื่อเดียวกันได้ หากเราสร้าง 2 เมธอดที่มีชื่อเดียวกันใน Java จะทำให้เกิดข้อผิดพลาดในการรวบรวม
  • สามารถทำได้โดยวิธีการโอเวอร์โหลด การโอเวอร์โหลดเมธอดทำให้โปรแกรมเมอร์สามารถเขียนเมธอดสองวิธีหรือมากกว่าสองเมธอดโดยใช้ชื่อเดียวกัน แต่รายการพารามิเตอร์ต่างกัน
  • เมธอดโอเวอร์โหลดใน Java นั้นคล้ายกับคอนสตรัคเตอร์โอเวอร์โหลด ความแตกต่างเพียงอย่างเดียวคือวิธีการโอเวอร์โหลดเกิดขึ้นสำหรับวิธีการที่กำหนดไว้ในคลาส ในขณะที่การโอเวอร์โหลดของคอนสตรัคเตอร์นั้นสำหรับเมธอดคอนสตรัคเตอร์ของคลาส
  • ในวิธีการโอเวอร์โหลดใน Java วิธีการโอเวอร์โหลดมีรายการพารามิเตอร์ที่แตกต่างกัน ไม่มีส่วนเกี่ยวข้องกับประเภทการส่งคืนของเมธอด ตัวอย่างเช่น; หากสองเมธอดมีชื่อเหมือนกันและรายการพารามิเตอร์เหมือนกัน แต่มีประเภทการส่งคืนต่างกัน นี่จะไม่ใช่ วิธีการโอเวอร์โหลดใน Java แต่เป็นกรณีที่ไม่ถูกต้อง

วิธีที่ 1 : int Add (ลอย ลอย)

วิธีที่ 2 : ลอย เพิ่ม (ลอย ลอย)

นี่เป็นกรณีที่ไม่ถูกต้องของวิธีการโอเวอร์โหลดเนื่องจากวิธีการ Add() ทั้งสองมีชื่อและรายการพารามิเตอร์เหมือนกัน

ด้านล่างนี้เป็นรหัสที่อธิบายวิธีการโอเวอร์โหลดใน Java:

ผลรวมคลาส{

int ส่วนตัว a;

int ส่วนตัว b;

int ส่วนตัว c;

ส่วนตัว int d;

int สาธารณะเพิ่ม (int a, int b){

int ค;

c=a+b;

กลับค;

}

int เพิ่มสาธารณะ (int a, float b){

int ค;

c=a+b;

กลับค;

}

int สาธารณะเพิ่ม (float a, float b){

int ค;

c=a+b;

กลับค;

}

int เพิ่มสาธารณะ (ลอย a, int b, int c){

int d;

d=a+b+c;

กลับ d;

}

}

โมฆะคงที่สาธารณะหลัก (สตริง[]args)

{

// การสร้างวัตถุของคลาสในวิธีการหลัก

sum obj1 = ผลรวมใหม่ ();

sum1=obj1.add(10,20);

sum2=obj1.add(10,55.5);

sum3=obj1.add(110.5,25.5);

sum4=obj1.add(10,20,30);

}

อ่านเพิ่มเติม: โปรแกรมรูปแบบใน Java

บทสรุป

ในบทความนี้ ได้มีการกล่าวถึง วิธีการโอเวอร์โหลดใน Java อย่างละเอียด โดยจะอธิบายประเภท กฎเกณฑ์ และข้อดีของมัน หัวข้อได้รับการอธิบายในเชิงลึกด้วยความช่วยเหลือของตัวอย่าง แจ้งให้เราทราบในความคิดเห็นหากคุณมีข้อสงสัยเกี่ยวกับการโอเวอร์โหลดใน Java

หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับ Java การพัฒนาซอฟต์แวร์แบบฟูลสแตก โปรดดูประกาศนียบัตร PG ของ upGrad & IIIT-B ด้านการพัฒนาซอฟต์แวร์แบบครบวงจร ซึ่งออกแบบมาสำหรับมืออาชีพที่ทำงานและมีการฝึกอบรมที่เข้มงวดมากกว่า 500 ชั่วโมง โครงการมากกว่า 9 โครงการ และการมอบหมายงาน สถานะศิษย์เก่า IIIT-B โครงการหลักและความช่วยเหลือด้านงานกับบริษัทชั้นนำ

ลงจอดบนงานในฝันของคุณ

UPGRAD และ PG DIPLOMA ของ IIIT-BANGALORE ในการพัฒนาซอฟต์แวร์
เรียนรู้เพิ่มเติม