Method Overloading ในภาษา Java

| Java | 1086 | 1055 วันที่แล้ว
บทความนี้เรามาทำความรู้จักและดูวิธีการใช้งาน Method Overloading ในภาษา Java กันครับ ว่ามันคืออะไร ใช้งานยังไง

ในภาษา Java นั้นมีการยอมรับให้ทำการตั้งชื่อ method เป็นชื่อเดียวกันได้ แต่ method ที่ชื่อเดียวกันจะมีความแตกต่างกันที่ชนิดและขนาดของ argument เพราะจะได้เรียกถูกว่าจะใช้ method ตัวไหน ตัวอย่างโค้ดที่มี Method Overloading ตามโค้ดด้านล่าง

package com.howtoclicks.example;

public class HowToclicksExample {
	public static void main(String[] args) {
	}

	public static int sumPoint(int a, int b) {
		return a + b;
	}

	public static int sumPoint(int a, int b, int c) {
		return a + b + c;
	}

	public static long sumPoint(int a, int b, long c) {
		return a + b + c;
	}
}
จากโค้ดเราจะมี method ที่ชื่อ sumPoint เหมือนกันใน Class เดียวกัน แต่เราสามารถรู้ได้ว่า method ไหนเป็น method ไหนโดยการส่ง argument ที่แตกต่างกันไป Primitives and overloading เราได้รู้มาแล้วว่าค่า primitive นั้นสามารถแบ่งกลุ่มออกมาได้ โดยมีตัวเลขเป็นหนึ่งในนั้น สมมติว่าเรามีตัวเลขหนึ่ง ๆ อยู่ เช่น 1 แล้วเรามี Method Overloading อยู่รับค่าเป็น primitive หลาย ๆ ค่า เราจะรู้ได้ยังไงว่าต้องส่งไป method ไหน ตามตัวอย่างโค้ด
package com.howtoclicks.example;

public class HowToclicksExample {
	void printPrimitive(char x) {
		System.out.println("printPrimitive(char)");
	}

	void printPrimitive(byte x) {
		System.out.println("printPrimitive(byte)");
	}

	void printPrimitive(short x) {
		System.out.println("printPrimitive(short)");
	}

	void printPrimitive(int x) {
		System.out.println("printPrimitive(int)");
	}

	void printPrimitive(long x) {
		System.out.println("printPrimitive(long)");
	}

	void printPrimitive(float x) {
		System.out.println("printPrimitive(float)");
	}

	void printPrimitive(double x) {
		System.out.println("printPrimitive(double)");
	}

	void testDouble() {
		double x = 0;
		System.out.println("double argument:");
		printPrimitive(x);
		printPrimitive((float) x);
		printPrimitive((long) x);
		printPrimitive((int) x);
		printPrimitive((short) x);
		printPrimitive((byte) x);
		printPrimitive((char) x);
	}

	public static void main(String[] args) {
		HowToclicksExample howtoclicks = new HowToclicksExample();
		howtoclicks.testDouble();
	}
}
จากตัวอย่างโค้ด เราจะแก้ปัญหานี้ได้โดยการ cast ให้เป็นชนิดที่ต้องการ เพียงแค่นี้มันก็เข้า method ที่ argument ตรงกันแล้ว
comments

[1]
AGI
60 D
[1]
Adobe-PDF
1164 D
[1]
Android
1055 D
[2]
Angular
38 D
[40]
Animal
1149 D
[1]
Apache
1164 D
[1]
[4]
[2]
[1]
[10]
CMS-Joomla
1165 D
[2]
CMS-SMF
1165 D
[1]
[4]
[1]
[3]
[1]
Database
1164 D
[4]
[1]
DeAI
25 D
[1]
DeData
25 D
[1]
DeFi
25 D
[2]
Docker
55 D
[2]
[1]
Forex
22 D
[1]
Fruit
1149 D
[1]
General
46 D
[2]
Git
951 D
[6]
HTML
55 D
[1]
Health
50 D
[1]
Housework
1153 D
[2]
IT
1145 D
[2]
Imacro
1165 D
[20]
Java
27 D
[1]
Java-Web
1056 D
[2]
[2]
MQL5
977 D
[3]
MakeMoney
951 D
[18]
[1]
[1]
Maven
950 D
[5]
[1]
Mobile
1162 D
[2]
NGINX
38 D
[2]
NodeJs
55 D
[1]
Oracle
55 D
[3]
Physics
946 D
[4]
PugJS
951 D
[2]
React
961 D
[132]
Science
1147 D
[2]
[5]
Spring
38 D
[12]
[7]
[2]
[1]
[4]
Ubuntu
1115 D
[1]
WebLogic
1146 D
[4]