ตั้งแต่ตอนนี้คุณคุ้นเคยกับการสร้างอินสแตนซ์คลาสใน Java เราสามารถพูดถึง Polymorphism และ Method Overloading ความแตกต่างคือความสามารถของวัตถุ Java ที่จะตอบสนองอย่างสม่ำเสมอเพื่อให้บรรลุพฤติกรรมที่เฉพาะเจาะจงกับวิธีการเรียกชื่อเดียวกัน แต่มีการใช้งานที่แตกต่างกัน ใน Java แนวคิดของ Polymorphism สามารถทำได้หลายวิธี นี่คือ Java Tutorial ของเราพร้อมโค้ดสำหรับการโอเวอร์โหลดวิธี
Java Tutorial พร้อมโค้ดสำหรับการโอเวอร์โหลดเมธอด
วิธีการบรรทุกเกินพิกัดคืออะไร
ใน Java เป็นไปได้ที่จะกำหนดสองคนขึ้นไปวิธีการภายในชั้นเดียวกันที่ใช้ชื่อเดียวกัน อย่างไรก็ตามการประกาศพารามิเตอร์ของพวกเขาควรจะแตกต่างกัน วิธีการเหล่านี้มีการกล่าวถึงมากเกินไปและกระบวนการนี้เรียกว่าวิธีการมากไป
วิธีการบรรทุกเกินพิกัดรองรับความหลากหลาย เพราะมันเป็นวิธีหนึ่งที่ Java ใช้กระบวนทัศน์“ หนึ่งอินเตอร์เฟสหลายวิธี”
คุณสมบัติ
- ในคลาสแนวคิดของการโอเวอร์โหลดเมธอดไม่อนุญาตให้ผู้ใช้ภายนอกตระหนักถึงการประมวลผลภายในของระบบ
- วิธีที่มากเกินไปแตกต่างกันในจำนวนพารามิเตอร์หรือชนิดของพารามิเตอร์หรือลำดับของพารามิเตอร์
- วิธีที่มากเกินไปได้รับการแก้ไขในลำดับต่อไปนี้:
- จำนวนพารามิเตอร์
- ประเภทของพารามิเตอร์
- ลำดับของพารามิเตอร์
บนพื้นฐานของวิธีการเหล่านี้จะถูกเรียกตามลำดับเพื่อส่งกลับผลลัพธ์ที่ต้องการ
- วิธีการบรรทุกเกินพิกัดช่วยให้ผู้ใช้เพื่อให้บรรลุ การรวบรวมความแตกต่างของเวลา
- เมธอดที่โอเวอร์โหลดอาจมีประเภทผลตอบแทนเหมือนหรือต่างกัน
โปรแกรม Java สำหรับการโอเวอร์โหลดเมธอด
class Figure{ /* Calculate Area of Square */ void area(double length){ System.out.println("Area of Square is: "+Math.pow(length,2)); } /* Calculate Area of Rectangle */ void area(double length,double breadth){ System.out.println("Area of Rectangle is: "+(length*breadth)); } /* Calculate Area of Cylinder */ void area(double radius,int height){ System.out.println("Area of Cylinder is: "+(2*3.14*Math.pow(radius,2)*height)); } /* Calculate Area of Cube */ void area(int arms){ System.out.println("Area of Cube is: "+(6*arms*arms)); } } class CalculateArea{ public static void main(String args[]){ Figure fig = new Figure(); fig.area(5.25); fig.area(4.5,5.5); fig.area(2); fig.area(3.2,6); } }
การส่งออกของวิธีการบรรทุกเกินพิกัด
คำอธิบายของรหัส Java & ผลผลิต
ที่นี่ภายในคลาส Figure area () มีการโอเวอร์โหลดวิธีการที่มีชื่อเดียวกันกับการใช้งานที่แตกต่างกันเช่นกระบวนทัศน์ "หนึ่งอินเทอร์เฟซหลายวิธี" คุณสามารถระบุได้ว่าวิธีการเดียวกันนี้ใช้ในการปฏิบัติงานที่แตกต่างกันเช่นการคำนวณพื้นที่ของพื้นที่ทางเรขาคณิตที่แตกต่างกันตามจำนวน / ประเภท / ลำดับของพารามิเตอร์ที่ส่งผ่านและผลผลิตที่ต้องการ
วิธีการภาวนาอาจจะเป็นคำสั่งใด ๆ ใช้เป็นพื้นที่ method () เพื่อคำนวณพื้นที่ของลูกบาศก์ที่ถูกเรียกใช้ก่อนที่จะเรียกใช้พื้นที่ method () เพื่อคำนวณพื้นที่ของทรงกระบอก
ในโปรแกรมเราเรียกอีกอย่างหนึ่งว่า static method pow () ของคลาส Math ซึ่งเป็นสมาชิกของแพ็คเกจ java.lang เพื่อคำนวณกำลังสองของจำนวนใด ๆ
เปิดแฟลช
ในระหว่างการแก้ไขเมธอดโอเวอร์โหลดที่ Java ใช้การแปลงประเภทอัตโนมัติจะเกิดขึ้นก็ต่อเมื่อไม่พบการจับคู่ที่ตรงกัน ดังที่คุณเห็นด้านล่างคลาสที่เกินไม่ได้กำหนดจอแสดงผล (int) แต่มันได้กำหนดจอแสดงผล (คู่) แล้ว
ดังนั้นเมื่อ display () ถูกเรียกด้วยอาร์กิวเมนต์จำนวนเต็มภายใน OverloadDemo ไม่พบวิธีการจับคู่ อย่างไรก็ตาม Java สามารถแปลงจำนวนเต็มเป็นคู่โดยอัตโนมัติและการแปลงนี้สามารถใช้ในการแก้ไขการโทร ดังนั้นหลังจากไม่พบ display (int) Java จะยกระดับ“ i” เป็น double แล้วจึงเรียก display (double) แน่นอนว่าหากมีการกำหนด“ display (int)” มันจะถูกเรียกแทน
class Overload { // display method with no parameters void display() { System.out.println("No parameters"); } // Overload display for two integer parameters. void display(int a, int b) { System.out.println("a and b: " + a + " " + b); } // overload display for a double parameter void display(double a) { System.out.println("a: " + a); } } class OverloadDemo { public static void main(String args[]) { Overload overload = new Overload(); int i = 88; ob.display(); ob.display (10, 20); ob.display (i); // this will invoke display(double) ob.display (123.2); // this will invoke display(double) } }
N.B: การแปลงนี้เป็นจริงสำหรับประเภทข้อมูลที่ต่ำกว่า (เช่น int) เป็นประเภทข้อมูลที่สูงกว่า (เช่นสองเท่า) ไม่ใช่สำหรับการแปลงกลับ (สองเท่าเป็น int)
ในบทช่วยสอนถัดไปของเราเราจะเรียนรู้เกี่ยวกับ Constructor overloading ใน Java
ความคิดเห็น