Java์์ ๋ฉ์๋(Method)๋ ์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ๊ณผ ๊ฐ๋
์ฑ์ ๋์ด๋ ์ค์ํ ์ญํ ์ ํฉ๋๋ค. ๋ฉ์๋๋ฅผ ํ์ฉํ ๋ ๋งค๊ฐ๋ณ์(Parameters)์ ์ธ์(Arguments)๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค. ์ด๋ฒ ๊ธ์์๋ ๋ฉ์๋ ๋งค๊ฐ๋ณ์์ ์ธ์์ ์ฐจ์ด, ์ฌ๋ฌ ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ, ๊ทธ๋ฆฌ๊ณ ์กฐ๊ฑด๋ฌธ(if...else
)์ ํฌํจํ ๋ฉ์๋ ์์ฑ๋ฒ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
1. ๋ฉ์๋ ๋งค๊ฐ๋ณ์์ ์ธ์๋?
๋ฉ์๋ ๋งค๊ฐ๋ณ์(Parameters)์ ์ธ์๋ ์๋ก ๋ฐ์ ํ๊ฒ ๊ด๋ จ๋์ด ์์ง๋ง ๋ค๋ฅธ ๊ฐ๋ ์ ๋๋ค.
- ๋งค๊ฐ๋ณ์(Parameters): ๋ฉ์๋๋ฅผ ์ ์ํ ๋ ๋ฐ์ดํฐ ์ ๋ ฅ์ ๋ฐ๊ธฐ ์ํด ์ ์ธํ๋ ๋ณ์์ ๋๋ค.
- ์ธ์(Arguments): ๋ฉ์๋๋ฅผ ํธ์ถํ ๋ ๋งค๊ฐ๋ณ์์ ์ ๋ฌ๋๋ ์ค์ ๊ฐ์ ๋๋ค.
์์ : ๋งค๊ฐ๋ณ์์ ์ธ์
public class MethodExample {
// ๋งค๊ฐ๋ณ์ ์ ์ธ
public static void greet(String name) {
System.out.println("์๋
ํ์ธ์, " + name + "๋!");
}
public static void main(String[] args) {
// ์ธ์ ์ ๋ฌ
greet("ํ๊ธธ๋");
}
}
์ถ๋ ฅ ๊ฒฐ๊ณผ:
์๋
ํ์ธ์, ํ๊ธธ๋๋!
์ ์ฝ๋์์ name
์ ๋งค๊ฐ๋ณ์์ด๊ณ , "ํ๊ธธ๋"
์ ์ธ์์
๋๋ค.
2. ์ฌ๋ฌ ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ๋ ๋ฉ์๋
Java์์๋ ๋ฉ์๋์ ์ฌ๋ฌ ๊ฐ์ ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ธํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ๋ค์ํ ๋ฐ์ดํฐ๋ฅผ ํ ๋ฒ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
์์ : ๋ ์์ ํฉ ๊ณ์ฐ
public class SumExample {
public static int sum(int num1, int num2) {
return num1 + num2;
}
public static void main(String[] args) {
int result = sum(10, 20);
System.out.println("๋ ์์ ํฉ: " + result);
}
}
์ถ๋ ฅ ๊ฒฐ๊ณผ:
๋ ์์ ํฉ: 30
์ด ๋ฉ์๋๋ ๋ ๊ฐ์ ์ ์๋ฅผ ์ ๋ ฅ๋ฐ์ ํฉ์ ๊ณ์ฐํ ํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํฉ๋๋ค.
3. ๋ค์ํ ๋ฐ์ดํฐ ํ์ ์ ๋งค๊ฐ๋ณ์
๋ฉ์๋๋ ์๋ก ๋ค๋ฅธ ๋ฐ์ดํฐ ํ์ ์ ๋งค๊ฐ๋ณ์๋ฅผ ๋ฐ์ ์๋ ์์ต๋๋ค.
์์ : ์ด๋ฆ๊ณผ ๋์ด ์ถ๋ ฅ
public class UserInfo {
public static void displayInfo(String name, int age) {
System.out.println("์ด๋ฆ: " + name + ", ๋์ด: " + age);
}
public static void main(String[] args) {
displayInfo("๊น์ฒ ์", 25);
}
}
์ถ๋ ฅ ๊ฒฐ๊ณผ:
์ด๋ฆ: ๊น์ฒ ์, ๋์ด: 25
์ ๋ฉ์๋๋ ๋ฌธ์์ด๊ณผ ์ ์ํ ๋ฐ์ดํฐ๋ฅผ ๋์์ ์ฒ๋ฆฌํฉ๋๋ค.
4. ์กฐ๊ฑด๋ฌธ์ ํฌํจํ ๋ฉ์๋
๋ฉ์๋ ์์ if...else
์กฐ๊ฑด๋ฌธ์ ์ฌ์ฉํ๋ฉด ๋ค์ํ ์ํฉ์ ๋ฐ๋ผ ๋ค๋ฅธ ๋์์ ์ํํ ์ ์์ต๋๋ค.
์์ : ์ฑ์ ํ๊ฐ
public class GradeEvaluation {
public static void evaluateGrade(int score) {
if (score >= 90) {
System.out.println("์ ์: " + score + ", ๋ฑ๊ธ: A");
} else if (score >= 80) {
System.out.println("์ ์: " + score + ", ๋ฑ๊ธ: B");
} else if (score >= 70) {
System.out.println("์ ์: " + score + ", ๋ฑ๊ธ: C");
} else {
System.out.println("์ ์: " + score + ", ๋ฑ๊ธ: F");
}
}
public static void main(String[] args) {
evaluateGrade(85); // ์ ์์ ๋ฐ๋ผ ๋ค๋ฅธ ๊ฒฐ๊ณผ ์ถ๋ ฅ
}
}
์ถ๋ ฅ ๊ฒฐ๊ณผ:
์ ์: 85, ๋ฑ๊ธ: B
์ด ๋ฉ์๋๋ ์ ๋ ฅ๋ ์ ์์ ๋ฐ๋ผ ๋ฑ๊ธ์ ํ๊ฐํฉ๋๋ค.
5. ๋ฉ์๋ ์ค๋ฒ๋ก๋ฉ๊ณผ ๋งค๊ฐ๋ณ์
Java์์๋ ๊ฐ์ ์ด๋ฆ์ ๋ฉ์๋๋ฅผ ์๋ก ๋ค๋ฅธ ๋งค๊ฐ๋ณ์ ๋ชฉ๋ก์ผ๋ก ์ ์ํ ์ ์์ต๋๋ค. ์ด๋ฅผ ๋ฉ์๋ ์ค๋ฒ๋ก๋ฉ(Method Overloading)์ด๋ผ๊ณ ํฉ๋๋ค.
์์ : ๋ฉ์๋ ์ค๋ฒ๋ก๋ฉ
public class OverloadingExample {
// ์ ์ํ ๋งค๊ฐ๋ณ์
public static void printInfo(int number) {
System.out.println("์ซ์: " + number);
}
// ๋ฌธ์์ด ๋งค๊ฐ๋ณ์
public static void printInfo(String text) {
System.out.println("ํ
์คํธ: " + text);
}
public static void main(String[] args) {
printInfo(100); // ์ซ์ ๋ฒ์ ํธ์ถ
printInfo("Hello"); // ๋ฌธ์์ด ๋ฒ์ ํธ์ถ
}
}
์ถ๋ ฅ ๊ฒฐ๊ณผ:
์ซ์: 100
ํ
์คํธ: Hello
์ค๋ฒ๋ก๋ฉ๋ ๋ฉ์๋๋ ๋งค๊ฐ๋ณ์์ ํ์ ์ด๋ ๊ฐ์์ ๋ฐ๋ผ ์ ์ ํ ๋ฉ์๋๋ฅผ ํธ์ถํฉ๋๋ค.
6. ๋ฉ์๋ ์์ฑ ์ ์ฃผ์์ฌํญ
- ๋งค๊ฐ๋ณ์์ ์ธ์์ ํ์ ์ผ์น: ๋ฉ์๋๋ฅผ ํธ์ถํ ๋ ๋งค๊ฐ๋ณ์์ ์ธ์์ ๋ฐ์ดํฐ ํ์ ์ด ์ผ์นํด์ผ ํฉ๋๋ค.
- ๋ฐํ๊ฐ ์ฒ๋ฆฌ: ๋ฐํ๊ฐ์ด ์๋ ๋ฉ์๋๋
return
๋ฌธ์ ์ฌ์ฉํด ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํด์ผ ํ๋ฉฐ, ํธ์ถํ ๊ณณ์์ ์ด๋ฅผ ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค. - ๊ฐ๋ ์ฑ: ๋ฉ์๋ ์ด๋ฆ๊ณผ ๋งค๊ฐ๋ณ์ ์ด๋ฆ์ ๋ช ํํ๊ฒ ์ง์ ํ์ฌ ๊ฐ๋ ์ฑ์ ๋์ด์ธ์.
๊ฒฐ๋ก
Java์์ ๋ฉ์๋ ๋งค๊ฐ๋ณ์์ ์ธ์๋ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ์ ๋ฌํ๊ณ ๋ค์ํ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ๋ฐ ์ค์ํ ์ญํ ์ ํฉ๋๋ค. ์ฌ๋ฌ ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ, ์กฐ๊ฑด๋ฌธ์ ํฌํจํ ๋ฉ์๋ ์์ฑ, ๋ฉ์๋ ์ค๋ฒ๋ก๋ฉ ๋ฑ์ ํ์ฉํ๋ฉด ๋์ฑ ๊ฐ๋ ฅํ๊ณ ์ ์ฐํ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ์ด๋ฒ ๊ธ์์ ์๊ฐํ ์์ ๋ฅผ ๋ฐํ์ผ๋ก ๋ค์ํ ๋ฉ์๋๋ฅผ ์์ฑํด ๋ณด์ธ์!
๋๊ธ ์ฐ๊ธฐ