1 minute read

Updated:

06-4 메소드

메소드 선언

메소드 선언부(signature)

  • 리턴타입 : 메소드가 리턴하는 결과의 타입을 표시
  • 메소드 이름 : 메소드의 기능이 드러나도록 식별자 규칙에 맞게 이름을 지음
  • 매개 변수 선언 : 메소드를 실행할 때 필요한 데이터를 받기 위한 변수를 선언
  • 메소드 실행 블록 : 실행할 코드를 작성

리턴타입

  • 메소드를 실행한 후의 결과값의 타입
  • 리턴값 없을 수 있으나, 있을 경우 리턴 타입에 선언부에 명시되어야 함.
    void powerOn(){ ... }
    double divide(int x, int y){ ... }
    
  • 리턴값 존재 여부에 따라 호출 방법이 다름
    powerOn();
    double result = divide(10, 20);
    

메소드 이름

  • 숫자로 시작하면 안되고 $와 _를 제외한 특수 문자 불가
  • 메소드 이름은 소문자로 작성
  • 서로 다른 단어가 혼합된 이름은 뒤이어 오는 단어 첫 글자를 대문자로 작성
    void run(){ ... }
    void startEngine(){ ... }
    Stirng getName(){ ... }
    int[] getScores(){ ... }
    

    매개 변수 선언

  • 메소드 실행에 필요한 데이터를 외부에서 받아 저장할 목적
    double divide(int x, int y){ ... }
    
    double result = divide(10, 20);
    
    byte b1 = 10;
    byte b2 = 20;
    double result = divide(b1, b2);
    

매개 변수 개수를 모를 경우

  • 매개 변수를 배열 타입으로 선언
    int sum1(int[] values){ }
    
    int[] values = {1, 2, 3};   // 배열 객체 생성해서
    int result = sum1(values);  // 메서드 호출
    int result = sum1(new int[] {1, 2, 3, 4, 5}   // 또는 호출 시 배열객체 생성
    
  • 배열을 생성하지 않고 값의 목록만 넘겨주는 방법
    int sum2(int ... values) {  }
    
    int result = sum2(1, 2, 3);   //메소드 호출 시 쉼표로 나열
    int result = sum2(1, 2, 3, 4, 5);
    

리턴(return)문

리턴값이 있는 메소드

  • 메소드 선언에 리턴 타입이 있는 메소드는 반드시 리턴 문을 사용해서 리턴값 지정
    return 리턴값;
    
  • 리턴문의 리턴값은 리턴 타입이거나 리턴 타입으로 변환될 수 있어야 함
    int plus(int x, int y){
          int result = x + y;
          return result;
    }
    
    int plus(int x, int y){
          int result = (byte) (x + y);
          return result;
    }
    

    리턴값이 없는 메소드

  • void로 선언된 메소드에서 메소드 실행을 강제 종료시킬 때 return문을 사용
    void run() {			
          while(true) {
              if(gas>0) {
                  System.out.println("달립니다. (gas잔량:" + gas +")");
              gas -= 1;
          } else {
              System.out.println("멈춥니다. (gas잔량:" + gas + ")");
              return;		//run() 메소드 실행 종료
          }
      }
    }
    
  • 만약 while문 뒤에 실행문이 추가적으로 있을 경우, break문을 반드시 사용해야 함. return문은 즉시 메소드를 종료시키기 때문

Categories:

Updated: