📚 참고
자바의 정석 기초편 (객체지향개념만)

 

 

 

 

 

 

 

메서드

 

  • 작업단위로 문장들을 묶어 이름 붙인 것

 

public static void main(String args[]) {
    // 배열 초기화
    for (int i = 0; i < 10; i++) {
    	numArr[i] = (int) (Math.random() * 10);
    }
    
    // 배열출력 (중복코드)
    for (int i = 0; i < 10; i++) {
    	System.out.printf("%d", numArr[i]);
    }
    System.out.println();
    
    // 배열출력 (중복코드)
    for (int i = 0; i < 10; i++) {
    	System.out.printf("%d", numArr[i]);
    }
    System.out.println();
}
// 배열출력 메서드
static void printArr(int[] numArr) {
    for (int i = 0; i < 10; i++) {
    	System.out.printf("%d", numArr[i]);
    }
    System.out.println();
}

public static void main(String args[]) {
    // 배열 초기화
    for (int i = 0; i < 10; i++) {
    	numArr[i] = (int) (Math.random() * 10);
    }
    
    // 배열출력 메서드 호출
	printArr(numArr);
    
    // 배열출력 메서드 호출
	printArr(numArr);
}

 

 

 

 

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

 

 

 

 

 

 

 

 

메서드 장점

 

  • 코드의 중복을 줄일 수 있다.
  • 코드의 관리가 쉽다.
  • 코드를 재사용할 수 있다.
  • 코드가 간결해서 이해하기 쉽다.

 

 

 

 

 

 

 

메서드 작성

 

반환타입 메서드명 (타입 변수명, 타입 변수명, ...)
{
    // 메서드 호출 시, 수행될 코드
}

 

  • 메서드 = 선언부 + 구현부
  • 반복적으로 수행되는 여러 문장을 메서드로 작성
  • 하나의 메서드는 한 가지 기능만 수행하도록 작성
  • 지역변수(lv) : 메서드 내에 선언된 변수
    • 매개변수(입력) : 0 ~ n개
    • 반환값(출력) : 0 ~ 1개 (1개 이상일 경우 배열 or 객체)

 

 

 

 

 

 

 

 

메서드 호출

 

메서드명(값1, 값2, ...);
public static void main(String[] args) {
    // 3, 5는 인수 (argument, 원본)
    int result = add(3, 5);		// 메서드 호출
}

// x, y는 매개변수 (parameter, 복사본)
int add(int x, int y) {
    int result = x + y;
    return result;
}

 

 

 

 

 

 

 

return 문

 

  • 실행 중인 메서드를 종료하고 호출한 곳으로 되돌아간다.

 

// 구구단을 프린트하는 메서드
void printGugudan(int dan) {
	if ( !(dan >= 2 && dan <= 9) ) {
    	// dan이 2 ~ 9가 아닌 경우, 호출한 곳으로 그냥 되돌아간다.
        return;
    }
    
    for (int i = 1; i <= 9; i++) {
    	System.out.printf("%d * %d = %d%n", dan, i, dan * i);
    }
    
    // 반환타입이 void이므로 생략가능 (컴파일러가 자동추가)
    // return;
}

 

 

 

 

  • 반환타입이 void가 아닌 경우, return문 반드시 필요

 

int multiply (int x, int y) {
    int result = x * y;
    
    // 반환타입이 void가 아니므로 생략불가
    return result;
}

// 에러 발생
int max (int a, int b) {
    if( a > b ) {
    	return a;	// 조건식이 참일 때만 실행
    }
}

int max (int a, int b) {
    // 모든 상황에 return문이 있어야 정상 작동
    if ( a > b ) {
    	return a;
    } else {
    	return b;
    }
}

 

 

 

 

  • return 시, 메서드의 반환타입과 리턴하려는 값의 타입이 일치하거나 자동형변환 할 수 있어야한다.

 

int add (int x, int y) {
    int result = x + y;
    
    // 자동형변환 할 수 있는 타입들
    // char result;
    // byte result;
    // short result;
    
    return result;
}

 

 

 

 

 

 

 

 

 

 

 

'JAVA > 객체지향개념' 카테고리의 다른 글

기본형 매개변수, 참조형 매개변수 차이점  (0) 2021.03.09
호출 스택 (Call Stack)  (0) 2021.03.07
선언위치에 따른 변수종류  (0) 2021.03.06
클래스와 객체  (0) 2021.03.02
객체지향 언어  (0) 2021.03.02