메서드(Function)

develop.u·2022년 8월 22일
0

메서드란?

  • 어떤 기능을 하는 코드들을 재사용하기 위해 한곳에 모아 처리하는 것
  • 매개변수라는 입력 값을 받아 무언가 처리하고 출력 값을 리턴하는 것

수학에서의 함수 개념이라고 생각하면 된다.

	f(x) = x + 1 //함수
	f(2) = 3 
	f(4) = 5 //x를 입력 받아서 계속 재사용

<1> 메서드 선언

  • 클래스 안에서 선언하여 사용

📝 형식

public static void 메소드명(){	
	.. 실행할 문자 ..
}

🖥️ 예시

	public static void hello(){
		System.out.println("안녕하세요");
	}

<2> 메서드 호출

📝 형식

public static void main(String[] args) {	//메인메서드
 	메서드이름();
}

🖥️ 예시


public class Practice {

	public static void main(String[] args) {
		hello();
	}

	public static void hello(){
		System.out.println("안녕하세요");
	}
}

결과

안녕하세요
  • main()
- 메인 메서드도 메서드
- 단, 자바에서는 프로그램 실행의 시작점이므로 필수로 있어야 함
- 다른 이름으로 사용할 수 없음

2-1. 메서드 간의 상호 호출

  • 메서드는 서로 호출하는 것이 가능
  • 호출된 메서드가 값을 리턴하는 경우, 리턴받은 값을 다른 연산에 사용 가능

🖥️ 예시

public static void main(String[] args) {
		System.out.println(f2(100)); //102
	}
	
	
	public static int f1(int x) {
		return x + 1;
	}

	public static int f2 (int x) { //x = 100
		// 메서드 안에서 다른 메서드 호출
		return f1(x) + 1;
	}
    
/*
* f2(100) = f1(100) + 1
* f2(100) = 101 + 1
* System.out.println(f2(100)); = 102
*/

<3> 매개변수(Parameter)

  • 메서드가 실행되는데 필요한 조건값을 적는 것
  • 메서드에 입력함으로써 값을 전달하기 위한 변수
  • int, double, String 등의 변수 형태로 선언

📝 형식

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

🖥️ 예시

public static void name(String name){
		System.out.println(name);
	}

3-1. 다중 파라미터(매개변수)

  • 여러개의 변수를 입력으로 줄 수 있으며 ,(콤마) 로 구분

📝 형식

public static void 매서드 이름(변수형 변수이름, 변수형 변수이름...){
		...
}

🖥️ 예시

public static void human(String name, int age){
		System.out.println(name);
        System.out.println(age);
}

3-2. 파라미터를 갖는 메서드의 호출

  • 파라미터가 명시되어 있다면 해당 메서드를 호출하면서 파라미터를 전달해 주어야 함

📝 형식

public static void main(String[] args) {
	메서드이름(1,2);		//메서드이름(변수형에 맞는 파라미터 값);
}

public static void 매서드 이름(변수형 변수이름, 변수형 변수이름){
		...
}

🖥️ 예시

public static void main(String[] args) {
	human("홍길동", 20);
}

public static void human(String name, int age){
		System.out.println(name);
        System.out.println(age);
}

결과값

홍길동
20

<4> 반환타입/반환값(Return Type/Return Value)

  • 메서드 안에서 어떤 값을 반환할 경우 사용
    return total; return score; return name;
    -> return 키워드 사용

  • 단, 메소드 정의시 반환타입과 반환값의 타입이 일치해야 함

  • 메소드 정의시 void로 정의하면 반환값이 없다는 의미

📝 형식

	public static 리턴타입 메소드명(매개변수) {
      		실행할 문자; 
		return 리턴값;  

🖥️ 예시

package method;

public class Main01 {

	public static void main(String[] args) {
		int a = plus(10, 5);	// 메서드의 리턴값을 변수에 저장
		
        System.out.println(a);
		System.out.println(f1(30));
	}
	
	public static int plus(int x, int y) {
		return x + y;	
	}
    //int형인 x와 y를 더한 값을 리턴할 것이므로 리턴타입은 int
	
	public static int f1(int x) {
		int y = x + 1;
		return y;
	}
}

결과값

15
31	// x에 대한 값으로 30을 입력받고 연산 결과를 y에 저장
	// y를 리턴했으니 출력 결과는 31

메서드를 사용하는 가장 큰 이유

  • 반복적으로 사용하는 코드들을 한곳에 모아 코드를 재사용하기 위해
  • 불필요한 중복 코드를 메서드로 정의하여 코드의 가독성을 높여주기 위해

0개의 댓글

관련 채용 정보