코드 그라데이션
Day11 메소드 예제 (1) 나름대로의 해석 본문
코드
package Day11;
public class MethodTest {
//1. 주고 받고
static String printHello(String name) {
return "안녕하세요"+name+"님";
}
//2. 주고 안받고
static int sum() {
int a = 10;
int b = 20;
return a + b;
}
//3. 안주고 받고
static void outputName(String name) {
System.out.println("안녕하세요"+name+"님");
}
//4. 안주고 안받고
static void printBye() {
System.out.println("바이~~~~~");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
String str =printHello("홍길동");
System.out.println(str);
System.out.println(printHello("호랑이"));
int result = sum();
System.out.println(result);
outputName("강아지");
printBye();
}
}
실행 결과
안녕하세요홍길동님
안녕하세요호랑이님
30
안녕하세요강아지님
바이~~~~~
(1)
이제 약간의 뇌피셜을 섞어가면서, 매커니즘을 정리해보자.
리턴값은 main 메소드에게 다른 메소드가 주는 값이다.
그래서 메인 메서드는 그 값을 가지고 출력.
(2)
지금 그러면 1. 주고받고 부분에서는
"안녕하세요"+name+"님" 이라는 이 return값 자체가, str이라는 String 변수에 그대로 저장된 상황인것이다.
그래서 String name 부분만 홍길동이 대입되어.
출력하면 "안녕하세요홍길동님" 이라는 한 문장이 출력이 되는 것이다.
(3)
두 번째 출력값인 "안녕하세요호랑이님" 문장은.
같은 과정을 겪어야 하지. 원칙적으로는, 그런데 지금 홍길동 자체가 호랑이로만 바뀌어서 출력되는 것과 마찬가지.
마치 변수는 가장 최근에 업데이트 된 값이 저장되는 것과 같다고 여기면 된다.
------------------
(4)
sum() 메소드
2. 주고, 안받고 메서드
즉 리턴값 o, 파라미터 x 인 메소드이다.
주고 받고 메서드에서 주는 것이 있으면 main 메서드에서 그 값을 변수에 가져왔던 것처럼.
파라미터가 없으나 리턴값이 있는 메서드인 sum() 그 자체를, 어떤 변수(result)를 선언하여 저장할 준비를 한다.
그리고 이 result를 그대로 출력하는 것이다. 그래서 30이 출력된다.
(5)
outputName("강아지"); 메소드
안주고(리턴값 x) 받고(파라미터 o) 메서드이다.
리턴값이 따로 없기 때문에, outputName() 메소드 내부에 있는 문장 그 자체가 main 메소드에서 출력되게 된다.
(변수 선언 및 값 저장 필요 x)
그런데 name 인자를 받고 있기 때문에, 문장 안에 있는 name에 "강아지" 가 들어가고, 그 부분이 강아지라는 단어로 바뀌어 출력된다. 그래서 "안녕하세요강아지님" 이 출력 결과이다.
(6)
printBye() 메소드.
리턴값도 없고, 파라미터도 없는 메소드이다.
일단 리턴값이 없기 때문에 이것 역시 메소드 내부의 문장이 그대로 출력된다.
받는 값도 없기 때문에 무언가를 넣어서 출력할 이유도 없으므로, 메소드 내부의 문장인 "바이~~~" 가 그대로 출력된다.
'Java > Mega-Method' 카테고리의 다른 글
Day12 Quiz02 도형의 넓이 구하기 (0) | 2023.03.31 |
---|---|
Day12 Quiz01. 계산기 만들기(2) 나름대로의 해석 (0) | 2023.03.31 |
Day12 Quiz01. 계산기 만들기(1) 나름대로의 해석 (0) | 2023.03.30 |
Day11 메소드 예제(3) 나름대로 해석 (0) | 2023.03.30 |
Day11 메소드 예제(2) 나름대로 해석 (0) | 2023.03.30 |