Method

haribo·2021년 2월 27일
0

Java

목록 보기
3/17

Why? 이거 왜 써야돼요?

청소라는 과정을 예로 들겠다. 청소기를 돌리고, 걸레질을 하고, 월,수,금은 분리수거 날이니 쓰레기를 내다버리고(조건문에 속하겠다). 이 모든 과정을 우린 통틀어 '청소'라고 말한다. 만약 청소란 단어로 묶어서 말하지 않는다면, 우린 친구3명에게 청소라는 과정을 하라고 말할때 "청소기 돌리고, 걸레질하고, 분리수거해"라고 장황하게 3번 말해야할것이다.

컴퓨터가 발명된 이유가 무엇인가? 편리하고 효율적으로 살기 위해서다. 장황한건 편리하고 효율적인것과 거리가 멀다. 여러 구문들을 묶어서 간결하게 사용할 수 있는 '메서드'란 것이 필요한 것이다.

  • 메서드 : 프로그램의 함수, 특정 기능(=연산)을 그룹화 해서 재사용하기 위한 단위
public static void 메서드이름() {
	... 수행할 연산식 ...
}
  • 정의된 메서드는 다른 메서드를 구성하는 { … } 안에서 다음의 형식으로 사용될 수 있으며, 이를 메서드를 호출한다고 한다.
메서드이름();

Main01 - f = x + 1 을 표현하는 메서드 만들기

public class Main01 {
	public static void main(String[] args) {
		// 여러번 사용이 가능하다.
		f();
		f();
	}

	public static void f() {
		int x = 100;
		int y = x + 1;
		System.out.println(y);
	}
}

f(); 만 언급해도 출력이 되는건 출력 구문을 포함하고 있기 때문이다.

메서드 파라미터

  • 메서드 파라미터 : 수학의 매개변수, x값을 뜻한다.
  • f(x) = x+1 이라는 함수가 있을때, x값이 주어져야 연산을 할 수 있을것이고, 여기서의 x를 메서드 파라미터라고 한다.
public static void 메서드이름( 변수형 변수이름 ) {
		...
}
  • (변수형 변수이름) = 메서드 파라미터
  • 메서드(=함수)가 실행될때 필요한 조건값을 상기 형태로 선언한다.


  • 여러개의 매개변수 : 특정 함수가 연산을 수행하기 위해 두 개 이상의 조건값이 필요하다면 f( x , y) = x + y + 1 처럼 콤마(,)로 구분하여 명시할 수 있다.
  • 다중 파라미터 : 메서드 또한 연산을 수행하는데 두 개 이상의 파라미터가 필요하다면 콤마(,)로 구분하여 선안할 수 있다.
public static void 메서드이름( 변수형 변수이름, 변수형 변수이름 ) {
		...
}
  • 파라미터를 갖는 함수의 사용 : 파라미터가 명시된 함수를 사용할 경우, 다음과 같이 괄호안에 파라미터에 해당하는 값을 전달해 준다.

  • f(x,y) = x + y + 1 / f(1,2) / 결과값 : 4

  • 파라미터를 갖는 메서드의 호출 : 메서드를 정의하면서 파라미터가 명시되어 있다면 해당 메서드를 호출하면서 파라미터를 전달해 주어야 한다.

public static void 메서드이름( 변수형 변수이름, 변수형 변수이름 ) {
		...
}
메서드이름(1,2);

Main02 - 파라미터를 전달받는 메서드

public class Main02 {
	public static void main(String[] args) {
		// 파라미터를 전달받는 메서드
			f1(100);
			f2(10,20);
	}
	
	public static void f1(int x) {
		int y = x + 1;
		System.out.println(y);
	}
	
	public static void f2(int x, int y) {
		int z = x*x + y + 1;
		System.out.println(z);
	}
}

함수의 결과값 = 메서드의 리턴값

  • return : 연산 결과를 자신이 호출된 위치에 반환하는 것. 반환되는 값 = 리턴값. return이라는 키워드 사용. 값을 리턴하는 메서드는 선언시에 void 키워드 대신 리턴하는 값에 대한 변수형이 명시된다. void는 리턴값이 없다는 의미.
public static 리턴형 메서드이름(변수형 파라미터1, ..., 변수형 파라미터n ) {
		return 리턴값;
}

Main03 - 리턴값의 사용

public class Main03 {
	public static void main(String[] args) {
		// 메서드의 리턴값을 변수에 저장
		int a = f1(100);
		System.out.println(a);
		// 리턴값을 출력에 사용
		System.out.println(f2(10));
	}
	
	public static int f1(int x) {
		int y = x + 1;
		return y;
	}
	
	public static int f2(int x) {
		return x*x + 1;
	}
}
  • 두 개의 함수를 연립하여 사용하기

    • 함수는 서로 호출하여 사용하는 것이 가능함.
    • f1(x) = x + 1
    • f2(y) = f1(y) + 10
    • k = f2(5)
    • k = 16
  • 메서드간의 상호 호출

public static 리턴형 메서드1이름(변수형 파라미터1, ..., 변수형 파라미터n) {
		return 리턴값;
}

public static 리턴형 메서드2이름(변수형 파라미터1, ..., 변수형 파라미터n) {
		int k = 메서드1이름(파라미터1, ..., 파라미터n); //다른 메서드 호출
		return k;
}

Main04 - 다른 메서드를 호출하는 메서드

public class Main04 {
	public static void main(String[] args) {
		// 다른 메서드를 호출하는 메서드
		// f1()은 f2()를 호출하고 있다.
			System.out.println(f2(100));
	}
	
	public static int f1(int x) {
		return x + 1;
	}
	
	public static int f2(int x) {
		// 다른 메서드의 호출
		return f1(x) + 1;
	}
}
이 포스트는 itpaper.co.kr에서 제공되는 강의자료를 바탕으로 작성되었습니다.
profile
그림 그리는 백엔드 개발자

0개의 댓글