Nuke Olaf - Log Store
[JAVA] 자바 - 메소드란 무엇인가? 본문
메소드를 사전에서 검색해 보자.
네이버 영한사전에서는 방법, 체계성이라고 설명하고 있다.
구글에서는 method를 어떻게 설명하고 있을까??
" a particular form of procedure for accomplishing or approaching something, especially a systematic or established one. "
" 어떤 것을 성취하거나 접근하기 위한 특정한 형태의 절차, 특히 체계적이거나 확립된 절차 "
크... 역시 컴퓨터는 영어쓰는 사람이 만들어서 그런지, 영어로 된 뜻이 훨씬 와닿는다.
IT사전에서 말하는 메소드란 무엇인지 검색해 보았다.
https://www.geeksforgeeks.org/methods-in-java/
" A method is a collection of statements that perform some specific task and return the result to the caller. "
" 메소드란 클래스안에 선언하는, 입력값을 받아 특정 행동을 수행하고 결과를 호출자에게 리턴하는 명령문 콜렉션이다. "
https://www.tutorialspoint.com/java/java_methods.htm
" A Java method is a collection of statements that are grouped together to perform an operation. When you call the System.out.println() method, for example, the system actually executes several statements in order to display a message on the console. "
" Java 메소드는 조작을 수행하기 위해 그룹화되는 명령문 콜렉션입니다. 예를 들어, System.out.println () 메소드를 호출하면 시스템은 실제로 콘솔에 메시지를 표시하기 위해 여러 명령문을 실행합니다. "
점프 투 자바에서는 메소드를 믹서기에 비유한다.
믹서기에 과일(입력값)을 넣으면, 믹서기 내부에서 어떤 과정을 거쳐 과일쥬스(리턴값)이 나온다는 식이다.
이것이 바로 메소드이다. 입력을 가지고 어떤 일을 수행한 다음, 결과물을 내어놓는 것. 이것이 메소드가 하는 일이다.
메소드라는 개념은 왜 생긴 것일까?
프로그래밍을 하다보면, 같은 코드를 반복해서 적고 있는 경우가 있을 것이다.
나의 경우에는 자바 CMD로 무인도를 탈출하는 게임을 만들었었는데, 특정한 행동을 할때마다 같은 내용의 대사를 출력하고, 숫자를 카운트해야하는 경우가 있었다. 특정한 행동을 수행하는 코드마다 밑에 긴 대사를 치는 것이 귀찮았었다. 그래서, 대사를 출력하고 숫자로 카운트해주는 메소드를 만들어 사용했던 경험이 있다.
이렇게 같은 내용의 코드를 반복해서 적는다는 것은 그 코드가 언젠가 또다시 사용할 가치가 있다는 뜻이다.
이러한 경우 그 코드를 한 뭉치로 묶어서, 어떤 입력값을 주었을 때 어떤 리턴값을 돌려준다는 식의 메소드를 작성하게 된다. 이렇게 메소드를 작성하게 되면, 다음부터는 같은 코드를 반복해서 적을 필요 없이, 내가 만들어놓은 메소드를 출력하기만 하면 내가 원하는 결과가 나온다.
이러한 효율성의 문제로 인해 메소드라는 개념이 생겼다.
메소드에서 중요하게 짚고 넘어가야할 내용이 있다. 바로 메소드의 입력값과 리턴값이다.
메소드는 들어온 입력값을 가지고 어떤 처리를 하여 리턴값을 돌려준다. 메소드는 입출력 유무에 따라 4가지로 분류한다.
- 입력과 출력이 모두 있는 메소드
- 입력과 출력이 모두 없는 메소드
- 입력은 없고 출력은 있는 메소드
- 입력은 있고 출력은 없는 메소드
이 부분은 점프투자바에 자세히 설명되어 있으며, 내가 기술한 내용 대부분도 그곳을 많이 참고 했다.
'Language > [JAVA]' 카테고리의 다른 글
[JAVA] 자바 "..." 이게 뭘까? (가변인자, varargs) (0) | 2020.01.02 |
---|---|
[JAVA] 자바 - 필드(field) 전역변수, 멤버변수 (0) | 2019.11.24 |
[객체지향 프로그래밍] 캡슐화(encapsulation) (0) | 2019.11.24 |
[JAVA] 자바 - 생성자란 무엇인가? (0) | 2019.11.23 |
[JAVA] 자바 - 매개변수, 인자란 무엇인가? (0) | 2019.11.23 |