본문 바로가기
back-end/JAVA

9) 객체지향-메서드의 정의, 메서드의 선언부와 구현부

by 모두의 향연 2021. 5. 12.
728x90
반응형

9-1) 메서드란?

문장들을 묶어놓은 것. 작업 단위로 문장들을 묶어서 이름 붙인 것.

어렵게 생각하지 마시고 이게 전부예요.

중복된 메서드

위 그림에서 위쪽 코드는 메서드를 필요할 때마다 매번 호출합니다.

그러면 너무 귀찮고 코드는 길어지겠죠?

그래서 아래 그림처럼 메서드를 한 번만 쓰고 필요할 때마다 메서드 이름으로만 호출하면 훨씬 간결한 코드가 됩니다.

 

 

② 값(입력)을 받아서 처리하고, 결과를 반환(출력)

메서드 작성방법

수학 시간에 봤던 함수와 비슷합니다. 함수에서 '함'자가 '박스'라는 뜻을 담고 있습니다.

객체지향에서 메서드는 함수를 지칭하는 용어이기도 합니다. 메서드≒함수

차이가 있다면, 메서드는 꼭 클래스 안에 위치해야 합니다. 

하지만 함수는 클래스에 독립적입니다. 따로 존재할 수 있습니다.

그냥... 근본적으로 같다고 보면 됩니다 허허..

 

저기 박스를 '블랙박스'라고 불리기도 합니다. 

안에서 무슨 일이 일어나는지 알 필요가 없기 때문입니다.

알고 싶지도 않고..ㅎ

 

 

 

9-2) 메서드의 장점

-코드의 중복을 줄일 수 있다.

 :같은 코드를 여러 번 쓸 필요가 없습니다.

-코드의 관리가 쉽다.

 :여러 코드를 한 코드로 쓰니깐요. 혹여나 코드가 바뀌면 한 코드만 수정하면 되니까 관리가 용이합니다.

-코드를 재사용할 수 있다.

 :한 코드를 필요할 때마다 가져와 쓸 수 있으니까요.

-코드가 간결해서 이해하기 쉬워진다.

 :코드 길이가 확 줄어드니 간결해집니다.

 

 

9-3) 메서드 작성

-반복적으로 수행되는 여러 문장을 메서드로 작성

-하나의 메서드는 한 가지 기능만 수행하도록 작성

 

 

 

9-4) 메서드 = 선언부 + 구현부

메서드의 선언부와 구현부

반환타입, 메서드 이름, 매개변수들을 '선언부'라 하고

메서드 호출 시 수행될 코드는 '구현부'라 합니다.

만약 반환타입이 없을 경우 void라고 적습니다.

 

 

 

9-5) 메서드의 구현부

지역변수(lv): 메서드 내에 선언된 변수

int add(int x, int y){
        int result = x + y;
        return result;
}

QUIZ: 지역변수를 찾아보세요.

정답: x, y, result

int multiply(int x, int y){
         int result = x * y;
         return result;
}

QUIZ: 지역변수를 찾아보세요.

정답: x, y, result

 

QUIZ: 두 개의 코드에서 변수 x, y, result는 같은 변수일까요?

정답: 아니요. 지역변수는 메서드 영역에서만 유효하기 때문에 서로 변수 이름이 같더라도 다른 변수입니다.

 

 

 

*유튜브 남궁성 선생님의 `자바의 정석`을 참고하여 만들었습니다*
*자세히 보고 싶은 분들은 유튜브 가서 보시면 되고요! 저는 개인적으로 공부하는 게 목적입니다*

728x90
반응형