Contents

Java
2013.12.28 09:27

3.3.4 리턴과 매개변수

조회 수 403 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄


3.3.4 리턴과 매개변수

메서드가 변수의 역할을 하는 것에 대해서 알아보았다. 좀 더 자세하게 메서드를 분석해보자. 다음은 기본 데이터 타입 변수의 선언과 앞에서 만든 sumB() 메서드의 선언을 보여주고 있다.

▒ 기본 데이터 타입 변수의 선언
 
int a;

□ int a의 분해
◇ 데이터 타입 : int
◇ 변수 : a

▒ sumB() 메서드의 선언
 
int sumB(int x, int y){
         int c;
         c = x+ y;
         return c;
 }

□ sumB()의 분해
◇ 리턴형 : int
◇ 메서드이름 : sumB
◇ 매개변수 : (int x, int y)
◇ 작업의 내용 : { .... }
◇ 종료키워드 : return
◇ 리턴값 : c

□ 참고
◇ 메서드 내부의 변수 c는 지역 변수이며, 매개변수 x, y 또한 지역 변수이다.
◇ 변수 x, y는 메서드 외부와 연결된 지역변수에 해당한다.

기본 데이터 타입 변수와 메서드의 선언 부분을 하나씩 분해해보자. 먼저 int a는 말 그대로 int라는 모양의 메모리를 생성하는데 a라는 이름을 붙여놓은 것이다. int sumB까지는 int a라는 것과 비슷하다. 하지만 sumB 옆 부분에 뭔가가 있다. 이것을 매개변수(Parameter)라고 한다. 매개변수를 통해서 메서드 외부에서 메서드 내부로 값을 넘겨받게 된다.

sumB 메서드는 블록({}) 내부의 작업들을 처리한 후 리턴에 의해서 결과값을 반환하게 된다. 그리고 블록 내부에 리턴할 형은 반드시 메서드의 이름 앞에 명시해야 한다.

예를 들어 어린 아이에게 심부름을 시키는 메서드를 만들어 보자. 메서드의 이름은 '휴지사오렴'이라고 가정하자. 그리고 어린 아이에게 돈을 주면 '휴지'를 사올 것이다. 돈이라는 매개변수를 직접 사용해보자.

돈을 매개변수에 넣어 주고 '휴지사오렴(2000원)'하고 명령을 내리면 어린 아이는 '휴지'를 리턴하게 될 것이다. 내부의 작업이 어떻게 되든 간에 리턴타입이 '휴지'이기 때문에 '휴지사오렴'의 최종 결과는 '휴지'가 될 것이다. 이것을 메서드로 만들어 보면 다음과 같다.

▒ 변수와 메서드의 선언
 
휴지 휴지사오렴(돈 m){
        m을 가지고 슈퍼로 간다.;
        휴지를 찾아서 잡는다.;
        휴지를 사서 가져온다.
        return 두루마리휴지;
 }

위의 경우와 같이 매개변수가 있을 경우 돈을 주지 않으면 휴지를 사오지 않을 것이다. 이 때 돈 자체는 매개변수가 된다. 돈을 건네 받을 중간 역할을 하는 것이 바로 매개변수의 기본 원리이다. 실제 메서드를 호출해보자.

▒ 휴지사오렴() 메서드의 호출
 
휴지 t = 휴지사오렴(2000);

2000원의 돈을 휴지사오렴() 메서드의 매개변수 m에 넣어 주면 작업을 끝낸 뒤 휴지를 리턴할 것이다. 즉 매개변수는 외부로부터 들어오는 데이터를 메서드 내부에서 얻어내기 위한 중간 역할을 하는 것이다.

여기서 한가지 주의할 것은 매개변수는 메서드 내에 존재하는 지역변수라는 것이다. 이 매개변수는 메서드 내부의 지역변수이면서 외부로부터 들어오는 값을 넘겨받을 수 있는 유일한 통로가 된다.

□ 메서드의 매력
◇ 메서드는 작업을 하나로 묶어서 관리할 수 있다는 측면에서 아주 효율적이다.
◇ 언제든 필요하면 반복적으로 호출이 가능하다.
◇ 호출할 때 매개변수만 만족시켜 주면 언제든지 호출할 수 있다.

결과적으로 메서드는 데이터를 넘겨받기 위해서 매개변수라는 것을 이용한다. 그리고 리턴에 의해서 최종적으로 메서드가 가질 값을 결정하게 된다. 메서드를 만들 때 반드시 리턴할 데이터의 형을 지정해주어야 한다.

□ 메서드를 만들 때 주의 사항
◇ 리턴값과 선언부에 명시된 리턴타입은 반드시 일치해야 한다.
◇ 값을 리턴하고자 할 때에만 리턴해야 한다.
◇ 호출할 때 매개변수의 개수와 매개변수의 형을 맞추어서 호출해야 한다.
◇ 메서드의 이름을 짓는 것은 프로그래머의 몫이며, 동작적인 의미를 사용하는 것이 좋다.
◇ 일반적으로 자바에서는 메서드의 이름은 소문자로 시작하고, 새로운 단어가 시작하면 다시 대문자로 시작한다.(예: getData(), executeUpdate())

마지막으로 메서드의 리턴값이 존재한다면, 호출되었을 때 하나의 변수로서의 역할을 하게 되는 것도 기억해두기 바란다.

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
56 Java 3.4.5 결론 IT장인 2013.12.28 343
55 Java 3.4.4 변수와 메서드의 분리와 결합 IT장인 2013.12.28 446
54 Java 3.4.3 변수와 메서드 결합의 의미 II IT장인 2013.12.28 386
53 Java 3.4.2 변수와 메서드 결합의 의미 I IT장인 2013.12.28 371
52 Java 3.4.1 클래스 내의 메서드 IT장인 2013.12.28 341
51 Java 3.3.7 값복사가 적용되는 곳 IT장인 2013.12.28 399
50 Java 3.3.6 값복사와 매개변수의 전달 IT장인 2013.12.28 460
49 Java 3.3.5 값복사 IT장인 2013.12.28 336
» Java 3.3.4 리턴과 매개변수 IT장인 2013.12.28 403
47 Java 3.3.3 메서드는 변수다. IT장인 2013.12.28 329
46 Java 3.3.2 메서드 IT장인 2013.12.28 314
45 Java 3.3.1 클래스의 구성요소 IT장인 2013.12.28 381
Board Pagination Prev 1 2 3 4 5 6 Next
/ 6