마법 상자, 메서드
지금까지 우리는 void main() 안에 모든 코드를 넣어왔습니다. 하지만 코드가 길어지면 어떨까요? 자주 사용하는 명령 묶음을 마법 상자처럼 이름을 붙여 꺼내 쓸 수 있습니다.
자바에서는 이 마법 상자를 **메서드(Method)**라고 부릅니다. 다른 언어에서는 “함수(Function)“라고 부르기도 하지만, 자바에서는 메서드가 공식 이름입니다.
메서드 만들기
static void sayHello() {
System.out.println("안녕하세요!");
}
void main() {
sayHello(); // 사용!
}
번역:
sayHello라는 마법 상자를 정의한다 {
"안녕하세요!"를 출력하고 한 줄 밑으로 이동해라;
}
프로그램의 시작점 {
sayHello 상자를 열어라(사용해라)!
}
상자를 한 번 만들어두면, sayHello()라고만 써도 상자 속의 모든 명령이 실행됩니다.
앞에 붙은
static은 지금은 “main에서 바로 쓰려면 필요한 키워드”라고만 기억해두세요.
재료를 넣는 메서드 (매개변수)
자판기에 동전을 넣으면 음료수가 나오듯, 메서드에게도 재료를 전달할 수 있습니다.
static void greet(String name) {
System.out.println("반가워요, " + name + "님!");
}
void main() {
greet("홍길동");
greet("자바");
}
번역:
greet라는 마법 상자를 정의한다 (재료는 문장 타입이고 name이라고 부를게) {
"반가워요, "와 name 내용물, "님!"을 합쳐서 출력;
}
프로그램의 시작점 {
greet 상자 사용 (재료는 "홍길동");
greet 상자 사용 (재료는 "자바");
}
결과:
반가워요, 홍길동님!
반가워요, 자바님!
결과를 돌려주는 메서드 (return)
마법 상자가 일을 끝내고 결과를 우리에게 다시 돌려줄 수도 있습니다. 이때 return을 사용하고, void 대신 돌려줄 타입을 적어줍니다.
static int add(int a, int b) {
return a + b;
}
void main() {
int result = add(10, 20);
System.out.println("결과는: " + result);
}
번역:
add라는 마법 상자를 정의한다 (재료는 숫자 a와 b야): 결과물은 숫자(int)로 나올 거야 {
a와 b를 더한 값을 바깥으로 돌려준다(return);
}
프로그램의 시작점 {
add 상자에 10과 20을 넣어서 나온 결과를 result라고 외워라;
"결과는: "과 result를 출력;
}
void는 무슨 뜻?
void main()에서 봤던 void가 기억나시나요? void는 “돌려줄 게 없다”는 뜻입니다.
void sayHello()→ 인사만 하고 끝 (돌려줄 것 없음)int add(int a, int b)→ 숫자를 돌려줌
왜 메서드를 쓰나요?
- 귀찮음을 줄여줍니다: 똑같은 코드를 여러 번 쓸 필요가 없어요.
- 코드가 깔끔해집니다: 긴 코드를 이름표(메서드명)가 붙은 상자에 담아두니 보기에 편합니다.
- 수정이 쉽습니다: 상자 속 내용물만 바꾸면, 그 상자를 쓰는 모든 곳이 한꺼번에 바뀝니다.
이제 여러분은 나만의 마법 상자를 만드는 제작자가 되었습니다!