안녕하세요.
얼마전에 우리는 '인수가 없는 함수'와 '인수가 있는 함수'를 배웠습니다. 근데 이 두가지를 좀더 자세히 말하자면 '인수가 없는 void함수, '인수가 있는 void함수'라고 말할 수 있습니다.
public static void 함수명()
이처럼 여태까지는 void를 함수명 앞에 적어줬는데 void의 뜻은 리턴값(반환값)이 없다는 뜻입니다. 그럼 도대체 리턴값이 무슨 뜻일까요?
리턴값이 있는 함수 즉, 리턴함수를 한번 만들어보면 이해가 빠를 것 같네요. 아래를 보시죠.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | package study; import javax.swing.JOptionPane; public class Study01 { public static void main(String[] args) { String back_pack = teacher(); JOptionPane.showMessageDialog(null, back_pack); } public static String teacher() { return "homework"; } } | cs |
컴퓨터는 항상 메인함수부터 처리한다고 했습니다.
9행을 처리하다가 back_pack이라는 스트링변수에다가 teacher()함수를 집어넣으라는 명령을 맞딱뜨립니다.
14~17행의 모든 글자를 집어넣으라는 뜻... 이 아닙니다.
14~17행에 정의되어 있는 teacher()함수를 한번 살펴봐야겠네요.
return "homework";
딸랑 이게 내용 다입니다. homework이라는 문자열을 내놓는다 는 뜻이죠. return이 사전상으로는 반환한다는 뜻인데 내놓는다가 더 이해하기 쉬워서 내놓는다라고 하겠습니다.
String box = teacher();
다시 이걸 보실까요? teacher 함수를 호출하니까 homework를 내놓으셨습니다(선생님이니까 높임말 ㅋ)
String box = "homework";
결국 이 문장하고 똑같은거죠.
제가 함수의 제작법을,
public static void 함수명()
이렇게 알려드렸는데 사실 이건 void함수의 제작법이었습니다.
이쯤에서 함수의 사용방법을 다시 알려드릴게요.
public static 리턴할 값의 자료형 함수명()
이렇게 사용하는 거죠. 위 예제에서는 빨간색 부분에 스트링이 들어가 있습니다. 리턴값이 없을 경우에는 빨간색 부분에 void가 들어갑니다.
이쯤에서 리턴의 존재의미에 대해 이의를 제기하는 분이 계실 것 같습니다. 그냥 아래처럼 만들면 편하지 않느냐 라구요.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | package study; import javax.swing.JOptionPane; public class Study01 { public static void main(String[] args) { teacher(); } public static void teacher() { JOptionPane.showMessageDialog(null, "homework"); } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | package study; import javax.swing.JOptionPane; public class Study01 { public static void main(String[] args) { JOptionPane.showMessageDialog(null, teacher()); System.out.println(teacher()); } public static String teacher() { return "homework"; } } | cs |
처리를 메인함수에서 하고 있습니다. 리턴값을 이용해서 콘솔출력도 하고 메세지박스에 띄우기도 하네요^^
감사합니다.
'자바로 게임 만들기' 카테고리의 다른 글
[자바로 게임 만들기] 22. 클래스에 색칠하기 (0) | 2019.01.09 |
---|---|
[자바로 게임 만들기] 21. 인수가 있는 리턴함수 (0) | 2019.01.08 |
[자바로 게임 만들기] 19. 인수가 있는 함수 (4) | 2019.01.03 |
[자바로 게임 만들기] 18. 함수의 필요성 (0) | 2018.12.31 |
[자바로 게임 만들기] 17. 함수를 만들어봅시다 (2) | 2018.12.30 |