[Java ์ดํดํ๊ธฐ] 18. Java์ ์ค๋ฒ๋ก๋ฉ
๐ Java์ ์ค๋ฒ๋ก๋ฉ์ด๋?
์ค๋ฒ๋ก๋ฉ(Overloading) ์ ๋์ผํ ์ด๋ฆ์ ๊ฐ์ง ๋ฉ์๋๋ฅผ ๋งค๊ฐ๋ณ์์ ํ์ ์ด๋ ๊ฐ์๋ฅผ ๋ค๋ฅด๊ฒ ํ์ฌ
์ฌ๋ฌ ๊ฐ ์ ์ํ๋ ๊ฒ์ ๋งํฉ๋๋ค. ์ด๋ ์ปดํ์ผ ์์ ์ ์ด๋ค ๋ฉ์๋๊ฐ ํธ์ถ๋ ์ง๋ฅผ ๊ฒฐ์ ํ๊ฒ ํฉ๋๋ค.
๐ค์ค๋ฒ๋ก๋ฉ์ ํน์ง
1. ๊ฐ์ ์ด๋ฆ, ๋ค๋ฅธ ๋งค๊ฐ ๋ณ์
- ์ค๋ฒ๋ก๋ฉ์ ๋์ผํ ์ด๋ฆ์ ๊ฐ์ง ๋ฉ์๋๋ฅผ ๋งค๊ฐ๋ณ์์ ๊ฐ์๋ ํ์ ์ ๋ค๋ฅด๊ฒ ํ์ฌ ์ฌ๋ฌ ๊ฐ ์ ์ํ๋ ๊ฒ์ ๋๋ค.
2. ์ปดํ์ผ ํ์ ์ ๊ฒฐ์
- ์ค๋ฒ๋ก๋ฉ์ ์ปดํ์ผ ํ์์ ๊ฒฐ์ ๋ฉ๋๋ค.
- ์ฆ, ์ด๋ค ๋ฉ์๋๊ฐ ํธ์ถ๋ ์ง๋ ์ปดํ์ผ ์์ ์ ๋งค๊ฐ๋ณ์์ ํ์ ๊ณผ ๊ฐ์์ ๋ฐ๋ผ ๊ฒฐ์ ๋ฉ๋๋ค.
3. ๋ฐํ ํ์ ์ ์ํฅ ์์
- ์ค๋ฒ๋ก๋ฉ์์๋ ๋ฐํ ํ์ ์ ๊ณ ๋ ค๋์ง ์์ต๋๋ค.
- ๋ฐํ ํ์ ์ด ๋ค๋ฅด๋๋ผ๋ ๋งค๊ฐ๋ณ์ ๋ชฉ๋ก์ด ๊ฐ์ผ๋ฉด ์ค๋ฒ๋ก๋ฉ์ด ๋ถ๊ฐ๋ฅํฉ๋๋ค.
๐ฉท ์ฅ์
์ฝ๋์ ๊ฐ๋ ์ฑ | ๋ฉ์๋ ์ด๋ฆ์ ์ผ๊ด๋๊ฒ ์ ์งํ ์ ์์ผ๋ฏ๋ก ์ฝ๋์ ๊ฐ๋ ์ฑ์ด ๋์์ง๋๋ค. |
์ ์ง๋ณด์ ์ฉ์ด | ๊ฐ์ ๊ธฐ๋ฅ์ ํ๋ ๋ฉ์๋๋ฅผ ํ๋์ ์ด๋ฆ์ผ๋ก ๊ด๋ฆฌํ ์ ์์ด ์ ์ง๋ณด์๊ฐ ์ฉ์ดํฉ๋๋ค. |
๋ค์ํ ์ ๋ ฅ ์ฒ๋ฆฌ | ๋ค์ํ ์ ๋ ฅ์ ์ฒ๋ฆฌํ ์ ์์ด ์ ์ฐ์ฑ์ด ๋์์ง๋๋ค. |
์ค๋ฒ๋ก๋ฉ์ ๋ํ ๊ฐ๋ ์ ์์ ์ ํจ๊ป ๋ค๋ค๋ณด๊ฒ ์ต๋๋ค.
์์ 1 ) ๊ฐ์ ์ด๋ฆ, ๋ค๋ฅธ ๋งค๊ฐ ๋ณ์
public class MathOperations {
public int add(int a, int b) {
return a + b;
}
public double add(double a, double b) {
return a + b;
}
public int add(int a, int b, int c) {
return a + b + c;
}
public static void main(String[] args) {
MathOperations math = new MathOperations();
System.out.println(math.add(1, 2)); // intํ add ํธ์ถ
System.out.println(math.add(1.5, 2.5)); // doubleํ add ํธ์ถ
System.out.println(math.add(1, 2, 3)); // 3๊ฐ์ intํ add ํธ์ถ
}
}
์์ 2 ) ๋ฐํ ํ์ ์ ์ํฅ ์์
public class Test {
// ์ ํจํ ์ค๋ฒ๋ก๋ฉ
public void display(String msg) {
System.out.println(msg);
}
// ์ ํจํ ์ค๋ฒ๋ก๋ฉ
public void display(int num) {
System.out.println(num);
}
// ๋ฐํ ํ์
๋ง ๋ค๋ฅด๋ฏ๋ก ์ค๋ฒ๋ก๋ฉ ๋ถ๊ฐ (์ปดํ์ผ ์๋ฌ)
// public int display(int num) {
// return num;
// }
}
์์ 3 ) ๋ค์ํ ์ ๋ ฅ ์ฒ๋ฆฌ
public class Print {
public void printInfo(String info) {
System.out.println("String: " + info);
}
public void printInfo(int info) {
System.out.println("Integer: " + info);
}
public void printInfo(double info) {
System.out.println("Double: " + info);
}
public static void main(String[] args) {
Print printer = new Print();
printer.printInfo("Hello World");
printer.printInfo(123);
printer.printInfo(45.67);
}
}
" ์์ฝ "
- ์ค๋ฒ๋ก๋ฉ : ๋์ผํ ์ด๋ฆ์ ๊ฐ์ง ๋ฉ์๋๋ฅผ ๋งค๊ฐ๋ณ์์ ํ์ ์ด๋ ๊ฐ์๋ฅผ ๋ฌ๋ฆฌํ์ฌ ์ฌ๋ฌ ๊ฐ ์ ์ํ๋ ๊ฒ.
- ํน์ง : ๊ฐ์ ์ด๋ฆ, ๋ค๋ฅธ ๋งค๊ฐ๋ณ์. ์ปดํ์ผ ํ์์ ๊ฒฐ์ . ๋ฐํ ํ์ ์ ์ํฅ ์์.
- ์ฅ์ : ์ฝ๋์ ๊ฐ๋ ์ฑ, ์ ์ง๋ณด์ ์ฉ์ด, ๋ค์ํ ์ ๋ ฅ ์ฒ๋ฆฌ ๊ฐ๋ฅ.
์ด ์ค๋ฒ๋ก๋ฉ์ ์ฐ๋ฆฌ๊ฐ ์์ฃผ ์ฌ์ฉํ๋ System.out.println() ๋ฉ์๋์๋ ์ ์ฉ๋ฉ๋๋ค.
์๋ฐ๋ ์๋ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์, ํ์ํ ๋๋ง๋ค API ๋ฌธ์๋ฅผ ์ฐธ์กฐํ๋ฉด์ ํ์ตํ๋ฉด ๋ง์ ๋์์ด ๋ฉ๋๋ค.
์๋๋ ์๋ฐ์ API ์ฌ์ดํธ ์ฃผ์์ ๋๋ค.
https://docs.oracle.com/en/java/javase/17/docs/api/index.html
Overview (Java SE 17 & JDK 17)
This document is divided into two sections: Java SE The Java Platform, Standard Edition (Java SE) APIs define the core Java platform for general-purpose computing. These APIs are in modules whose names start with java. JDK The Java Development Kit (JDK) AP
docs.oracle.com
์ค์ ๋ก System.out.println() ๋ฉ์๋๋ ๋ค์ํ ๋ฐ์ดํฐ ํ์ ์ ์ฒ๋ฆฌํ ์ ์๋๋ก ์ฌ๋ฌ ๋ฒ์ ์ผ๋ก ์ค๋ฒ๋ก๋ฉ๋์ด ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ๋ฌธ์์ด, ์ ์, ๋ถ๋ ์์์ ์ซ์, ๋ถ๋ฆฌ์ธ, ์ฌ์ง์ด ๊ฐ์ฒด๊น์ง ์ถ๋ ฅํ ์ ์์ต๋๋ค.
์ฐ๋ฆฌ๊ฐ System.out.println()์ ํธ์ถํ ๋๋ง๋ค ์ปดํ์ผ๋ฌ๋ ์ธ์์ ํ์ ์ ๋ง๋ ์ ์ ํ ์ค๋ฒ๋ก๋ฉ๋ ๋ฉ์๋๋ฅผ ์๋์ผ๋ก ์ ํํฉ๋๋ค.
ํ๋ก๊ทธ๋๋ฐ ์ ์ด API์ฌ์ดํธ๋ฅผ ์ฐธ๊ณ ํ๋ฉฐ ํ์๋ ๊ฒ์ ์ถ์ฒ๋๋ฆฝ๋๋ค. ๐
์ค๋ฒ๋ก๋ฉ์ ์ ํ์ฉํ๋ฉด, ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ์ค์ํ ์์น์ธ
๋คํ์ฑ์ ๊ตฌํํ ์ ์์ต๋๋ค.
์ง๋ฌธ์ ์ธ์ ๋ ์ง ๋๊ธ์ ๋จ๊ฒจ์ฃผ์ธ์.
๐ฉต๐ฐ๐ฉต