자바 - 메서드: 초보자의 가이드
안녕하세요, 미래의 자바 마법사들! 오늘, 우리는 자바 메서드의 세계로 흥미진진한 여행을 떠날 거예요. 아직 코드를 한 줄도 작성하지 않았다고 해도 걱정하지 마세요 – 우리는 맨 처음부터 시작하여 점점 더 나아갈 거예요. 이 튜토리얼을 끝내면, 당신은 프로처럼 메서드를 만들고 호출할 수 있을 거예요!
자바 메서드란 무엇인가요?
쿠키를 굽는 것을 상상해봅시다. 각 번에 레시피를 따라烘烤하는 거죠? 그렇지, 자바에서 메서드는 레시피와 비슷해요. 그들은 특정 작업을 수행하는 재사용 가능한 코드 블록이에요. 쿠키 레시피를 여러 번 사용할 수 있는 것처럼, 프로그램에서 메서드를 여러 번 사용할 수 있어요.
왜 메서드를 사용하나요?
- 재사용성: 한 번 작성하고, 여러 번 사용할 수 있어요.
- 구조화: 코드를 깨끗하고 구조화된 상태로 유지하세요.
- 단순화: 복잡한 문제를 더 작은, 관리 가능한 조각으로 나눕니다.
이제, 자바 메서드의 세부 사항에 몰아치죠!
자바 메서드 만들기
자바에서 메서드를 만드는 것은 가장 좋아하는 레시피를 적는 것과 같아요. 여기 기본 구조가 있어요:
public static void greet() {
System.out.println("Hello, Java learner!");
}
이것을 분석해봅시다:
-
public
: 이는 프로그램의 다른 부분이 이 메서드를 사용할 수 있음을 의미합니다. -
static
: 지금은 걱정하지 마세요; 나중에 다룰 거예요. -
void
: 이는 메서드가 어떤 값도 반환하지 않음을 의미합니다 (곧 더 알아보겠습니다). -
greet
: 이는 우리의 메서드의 이름이에요. -
()
: 이 괄호는 매개변수(레시피의 재료)를 포함할 수 있어요.
자바 메서드 호출하기
이제 메서드를 만들었으니, 어떻게 사용하죠? 간단합니다! 이렇게 호출하면 됩니다:
public class MethodExample {
public static void main(String[] args) {
greet();
}
public static void greet() {
System.out.println("Hello, Java learner!");
}
}
이 프로그램을 실행하면 "Hello, Java learner!"를 콘솔에 인쇄합니다. 마법이 아니겠죠?
자바 메서드에서 void 키워드
우리가 greet()
메서드에서 void
를 사용한 것을 기억해봅시다. 그 의미에 대해 이야기해볼까요.
-
void
: 메서드가 어떤 값도 반환하지 않습니다. - 다른 반환형:
int
,String
,boolean
등.
이以下是返回值的 메서드 예제입니다:
public static int addNumbers(int a, int b) {
return a + b;
}
이 메서드를 사용하려면:
public class MethodExample {
public static void main(String[] args) {
int result = addNumbers(5, 3);
System.out.println("The sum is: " + result);
}
public static int addNumbers(int a, int b) {
return a + b;
}
}
이것은 "The sum is: 8"를 콘솔에 인쇄합니다.
자바 메서드에서 매개변수의 값 전달
매개변수는 우리의 레시피의 재료와 비슷해요. 그들은 우리에게 메서드에 정보를 전달할 수 있게 해줍니다. 자바에서 매개변수는 값으로 전달됩니다. 이는 값의 복사본이 메서드에 전달됨을 의미합니다.
public static void modifyValue(int x) {
x = x * 2;
System.out.println("Inside method: " + x);
}
public static void main(String[] args) {
int num = 10;
System.out.println("Before method call: " + num);
modifyValue(num);
System.out.println("After method call: " + num);
}
출력:
Before method call: 10
Inside method: 20
After method call: 10
원래의 num
이 변경되지 않았는지 보았나요? 그 이유는 자바가 num
의 복사본을 modifyValue()
에 전달했기 때문입니다.
자바 메서드 오버로딩
메서드 오버로딩은 각각 다른 재료를 가진 쿠키 레시피가 여러 개 있는 것과 비슷해요. 자바는 다른 매개변수 목록을 가진 여러 개의 메서드를 가질 수 있게 허용합니다.
public static int add(int a, int b) {
return a + b;
}
public static double add(double a, double b) {
return a + b;
}
public static void main(String[] args) {
System.out.println(add(5, 3)); // int 버전을 호출합니다
System.out.println(add(5.5, 3.2)); // double 버전을 호출합니다
}
자바는 제공한 인수에 따라 어떤 메서드를 호출할지 알고 있습니다.
명령줄 인수 사용하기
명령줄 인수는 프로그램을 실행할 때 정보를 전달할 수 있게 해줍니다. 그들은 main
메서드의 args
배열에 저장됩니다.
public class CommandLineExample {
public static void main(String[] args) {
if (args.length > 0) {
System.out.println("Hello, " + args[0] + "!");
} else {
System.out.println("Hello, stranger!");
}
}
}
java CommandLineExample Alice
로 이 프로그램을 실행하면 "Hello, Alice!"를 인쇄합니다.
자바 메서드 내의 this 키워드
this
키워드는 현재 객체 인스턴스를 참조합니다. 이는 매개변수의 이름이 인스턴스 변수와 같을 때 유용합니다.
public class Person {
private String name;
public void setName(String name) {
this.name = name; // 'this.name'은 인스턴스 변수를 참조합니다
}
}
자바 메서드의 가변 인수 (var-args)
Var-args는 메서드에 가변数量的 인수를 전달할 수 있게 합니다. 이는 어떤 수의 추가물을 처리할 수 있는 레시피와 같아요!
public static void printNumbers(int... numbers) {
for (int num : numbers) {
System.out.print(num + " ");
}
System.out.println();
}
public static void main(String[] args) {
printNumbers(1, 2, 3);
printNumbers(4, 5, 6, 7, 8);
}
이것은 다음과 같이 인쇄합니다:
1 2 3
4 5 6 7 8
finalize() 메서드
finalize()
메서드는 가비지 수거기가 객체에 대한 더 이상의 참조가 없음을 판단하면 호출됩니다. 이는 객체에 대한 정리 크루입니다!
public class FinalizeExample {
protected void finalize() throws Throwable {
System.out.println("Object is being garbage collected!");
super.finalize();
}
public static void main(String[] args) {
FinalizeExample obj = new FinalizeExample();
obj = null;
System.gc(); // 가비지 수거를 요청합니다
}
}
기억하세요, 중요한 정리 작업에 finalize()
를 의존하지 말아야 하며, 호출되지 않을 것으로 보장할 수 없습니다.
결론
축하합니다! 당신은 자바 메서드의 세계로 첫 걸음을 내딛었어요. 연습이Baekwon을 말하자, 이 개념들을 실험해보세요. 곧, 당신은 신발끈을 매는 것처럼 쉽게 메서드를 작성할 수 있을 거예요!
다음은 우리가 다룬 메서드의 빠른 참조 표입니다:
메서드 유형 | 예제 |
---|---|
Void 메서드 | public static void greet() { ... } |
반환 값 메서드 | public static int addNumbers(int a, int b) { ... } |
오버로드된 메서드 |
public static int add(int a, int b) { ... } public static double add(double a, double b) { ... }
|
가변 인수 메서드 | public static void printNumbers(int... numbers) { ... } |
Finalize 메서드 | protected void finalize() throws Throwable { ... } |
코딩을 계속하고, 계속 배우며, 가장 중요한 것은 즐기세요! 자바의 세계는 깊고 흥미로워, 당신은 그 표면을 간지럽혔어요. 해피 코딩!
Credits: Image by storyset