TIL | [Java] 메소드

hyemin·2022년 4월 1일
0

Java

목록 보기
9/10
post-thumbnail
post-custom-banner

메소드 사용 이유

메소드는 입력값을 받아 어떤 처리를 하고 리턴값을 돌려주는 것

반복을 피하기 위해서!
반복을 피하면 코드량이 줄어들고 유지 보수가 쉬워진다

예시)

0~5의 수를 3번 반복해서 출력할 경우

메소드 사용 안한 경우

public static void main(Stinrg[] args) {
    // 0 ~ 5 출력하는 것을 3번 반복
    for (int j = 0; j < 3; j++ {
      	int i = 0;
        // 0 ~ 5 출력
      	while(i < 6) {
      		System.out.println(i);
        	i++;
        }
    }
}

메소드 사용한 경우 - 메소드 선언과 호출을 이용

public class Method {
	// numbering() 메소드 선언
	public static void numbering() {
    	int i = 0;
        // 0 ~ 5 출력
      	while(i < 6) {
      		System.out.println(i);
        	i++;
        }
    }
  
    public static void main(String[] args) {
   		// numbering() 메소드 호출
    	numbering();
        numbering();
        numbering();
    }
}

메소드 입력값 출력값

입력 - 매개변수와 인자

매개변수(parameter) - 메소드의 입력값을 받는 변수

인자(argument) - 메소드 호출시 사용되는 입력값

public class Method {
	public static void numbering(int start, int stop) // 매개변수 { 
    	int i = start;
      	while(i < stop) {
      		System.out.println(i);
        	i++;
        }
    }
  
    public static void main(String[] args) {
   		// numbering() 메소드 호출
    	numbering(2, 6); // 인자
    }
}

출력 - return

public class Method {
	public static String numbering(int start, int stop) // 매개변수 { 
    	int i = start;
        String temp = "";
      	while(i < stop) {
      		temp += i;
        	i++;
        }
        return temp;	//temp에 담긴 값을 메소드 외부로 반환
        // return을 만나는 순간 메소드 종료
    }
  
    public static void main(String[] args) {
   		// numbering() 메소드 호출
    	String result = numbering(2, 6); // 리턴값이 들어가 있음
        System.out.println(result);
    }
}

메소드 입력값 출력값에 따른 구분

  1. 입력값이 있고 출력값도 있는 메소드(일반적인 메소드)
  2. 입력값이 있고 출력값은 없는 메소드
  3. 입력값이 없고 출력값은 있는 메소드
  4. 입력값이 없고 출력값도 없는 메소드

    출력값이 없다면 void, 출력값이 있다면 자료형
    입력값이 없다면 그냥 괄호, 있다면 매개변수 입력

인스턴스 객체를 생성하고 인스턴스 변수.메소드명();을 통해 메소드를 사용한다.

  • 선언된 매개변수과 동일한 자료형 값 입력
  • 매개변수가 있는데 인자를 입력하지 않으면 안된다
  • 출력값이 있는 메소드는 반환 타입과 일치하는 변수에 값을 저장할 수 있다
post-custom-banner

0개의 댓글