Home > Archive > Java_archive > ☕️[Java] 메서드정의

☕️[Java] 메서드정의
Java Programming Language

메서드 정의

메서드는 다음과 같이 정의합니다.

public static int add(int a, int b) {
    // 메서드 본문, 실행 코드
}

제어자 반환타입 메서드이름(매개변수 목록) {
    메서드 본문
}
  • 제어자(Modifier) : public, static 과 같은 부분입니다.
    • 제어자는 추후에 학습 후 정리하겠습니다.
  • 반환 타입(Return Type) : 메서드가 실행 된 후 반환하는 데이터의 타입을 지정합니다.
    • 메서드가 값을 반환하지 않는 경우, 없다는 뜻의 void를 사용해야 합니다.
      • 예) void print(String str)
  • 메서드 이름(Method Name) : 메서드의 이름입니다.
    • 이 이름은 메서드를 호출하는 데 사용됩니다.
  • 매개변수(Parameter) : 입력 값으로, 메서드 내부에서 사용할 수 있는 변수입니다.
    • 매개변수(Parameter)는 옵션입니다. 입력값이 필요 없는 메서드는 매개변수(Parameter)를 지정하지 않아도 됩니다.
      • 예) add()
  • 메서드 본문(Method Body) : 실제 메서드의 코드가 위치합니다.
    • 중괄호 {} 사이에 코드를 작성합니다.

매개변수가 없거나 반환 타입이 없는 경우

매개변수가 없고, 반환 타입도 없는 메서드를 확인해봅시다.

package method;

public class Method2 {

  public static void main(String[] args) {
    // 매개변수가 없기 때문에 전달하는 인수,인자도 없다.
    printHeader();
    System.out.println("프로그램이 동작합니다.");
    printFooter();
  }
  // 반환타입과 매개변수가 없는 함수
  public static void printHeader() {
    System.out.println("= 프로그램을 시작합니다 =");
    return; // void의 경우 생략 가능
  }
  
  public static void printFooter() {
    System.out.println("= 프로그램을 종료합니다 =");
  }
}

실행 결과

= 프로그램을 시작합니다 =
프로그램이 동작합니다.
= 프로그램을 종료합니다 =

printHeader(), printFooter() 메서드는 매개변수가 없고, 반환 타입도 없습니다.

  • 매개변수가 없는 경우
    • 선언 : public static void printHeader()와 같이 매개변수를 비워두고 정의하면 됩니다.
    • 호출 : printHeader();와 같이 인수를 비워두고 호출하면 됩니다.
  • 반환 타입이 없는 경우
    • 선언 : public static void printHeader()와 같이 반환 타입을 void로 정의하면 됩니다.
    • 호출 : printHeader(); 와 같이 반환 타입이 없으므로 메서드만 호출하고 반환 값을 받지 않으면 됩니다.
      • String str = printHeader(); 반환 타입이 void이기 때문에 이렇게 반환 값을 받으면 컴파일 오류가 발생합니다.

void와 return 생략
모든 메서드는 항상 return을 호출해야 합니다.
그런데 반환 타입 void의 경우에는 예외로 printFooter()와 같이 생략해도 됩니다.
자바 컴파일러가 반환 타입이 없는 경우에는 return을 마지막줄에 넣어줍니다.
참고로 return을 만나면 해당 메서드는 종료됩니다.