본문 바로가기
study/Java

자바Java 메서드 (1) – 정의와 구조

by 고기만두(개발자) 2021. 8. 18. 18:09
728x90
반응형

오늘은 먼저 메서드의 정의와 구조에 대해 알아보겠습니다.

 

프로그램을 새로 짜거나 수정할 때, 반복되는 내용을 계속 치고 있는 경우를 한번쯤은 겪어보신 적이 있을 텐데요.

(물론 제가 멍청해서 그런 것일 수도 있어요)

이런 현상을 해결하기 위해 만든 개념이 메서드입니다.

메서드는 어떤 작업을 수행하기 위한 명령문의 집합입니다.

어떤 값을 입력받아 처리하고 결과를 반환합니다.

(값을 입력받지 않기도 하고, 결과를 반환하지 않기도 합니다만, 그 부분은 5편쯤에서 더 자세히 소개해드릴게요.)

과일을 믹서기에 넣고 갈면 과일 주스라는 결과물이 나옵니다.

믹서기에 넣는 과일을 메서드에 입력되는 매개변수에, 과일 주스를 리턴값에 대입해보자면, 메서드는 과일 주스를 만들어 준 믹서기 같은 존재겠지요.

아래의 예제 코드를 함께 보시겠습니다.

public class Test {

    public int sum(int a, int b) {
      return a+b;
    }
    public static void main(String[] args) {
      int a = 1;
      int b = 2;
      Test myTest = new Test();
      int c = myTest.sum(a,b);
      System.out.println(c);
    }
 }

정수 a b를 입력받아, a b의 합을 반환하는 메서드 sum을 만들었습니다.

그리고 a 1, b 2를 입력하고 Test 클래스를 인스턴스화해서 만든 객체 myTest에서 sum 메서드를 호출하여 3이라는 결과값을 출력했습니다.


메서드는 크게 선언부(빨간색 박스)와 구현부(몸통, 노란색 박스)로 나뉩니다.

빨간색 박스의 선언부에서 리턴 타입과 메서드 이름, 입력받을 매개변수의 이름과 타입을 정합니다.

매개변수는 여러 개가 될 수도 있는데, 이런 경우 쉼표로 이어서 작성합니다.

이 매개변수는 지역 변수입니다.

메서드 안에서만 사용되고 종료되면 메모리에서 제거됩니다.

그리고 노란색 박스의 구현부에서는 메서드 호출시 어떤 코드가 수행될지를 결정합니다.

결과값이 있으면 return처리를 통해 결과값을 반환하지만, 결과값을 갖지 않는 경우에는 void 처리를 할 수도 있습니다.

이런 예외적인 경우는 5편에서 알아볼 것입니다.

 

그렇다면 명령문의 집합을 따로 묶어서 메서드로 처리하면 무엇이 좋을까요?

메서드의 장점은 다음과 같습니다.

1.     반복해서 같은 내용을 여러 번 작성하지 않을 수 있습니다.

여러 곳에서 하나의 메서드를 호출하여 같은 기능을 구현할 수 있으니 코드의 분량도 줄어들고, 유지보수에도 편리합니다.

2.     메서드 내의 모든 코드를 완벽하게 이해하지 못해도 괜찮습니다.

무엇을 넣고 무엇을 반환하는 지만 정확하게 이해할 수 있다면 메서드를 호출하여 기능을 구현할 수 있습니다.

 

하지만 메서드를 작성할 때 주의해야 할 사항도 있습니다.

1.     하나의 메서드는 한 가지 기능만 수행하는 것이 좋습니다.

2.     여러 문장이 반복적으로 수행될 때 메서드를 작성하면 유리합니다

: 빈도가 낮거나, 문장수가 적으면 메서드를 작성하는 것은 오히려 복잡도를 높일 수 있기 때문입니다.

 

이번 레터를 통해 메서드의 정의와 구조, 장점과 주의해야 할 사항을 알아봤습니다.

다음 편에서는 메서드에서 값을 Return 하는 방법에 대해 알아보겠습니다.

728x90
반응형

댓글