Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags more
Archives
Today
Total
관리 메뉴

luke

[자바/Java] - 메서드 (Method) 본문

Study/Java

[자바/Java] - 메서드 (Method)

luke-king 2023. 12. 28. 18:17

메서드(Method)

자바에서는 함수를 메서드(Method)라 한다.

바로 메서드를 사용하지 않은 코드와 메서드를 사용한 코드를 보겠다.

 

<메서드를 사용하지 않은 코드>

public class Method {

	public static void main(String[] args) {
    
     //계산1
     int a = 4;
     int b = 6;
     System.out.println(a + "+" + b);
     int sum1 = a + b;
     System.out.println("결과1 출력:" + sum1);
 
     //계산2
     int x = 30;
     int y = 20;
     System.out.println(x + "+" + y); 
     int sum2 = x + y;
     System.out.println("결과2 출력:" + sum2);
 
 	}
}

위 코드를 보면 같은 연산을 두 번 한다는걸 볼수 있다. 또 계산1,계산2 부분이 거의 같다. (a + b), (x + y)  결국은 둘다 합을 구하는 계산 인것이다. 보기만해도 반복하는걸 알수 있고 수정 또는 제거하고 싶다면 해당 코드를 다 찾아다니면서 모두 수정해야 할것이다. 이런 문제를 깔끔하게 해결하기 위해 메서드를 사용해 코드 작성을 한다.

 

<메서드를 사용한 코드>

public class Method1Ref {

 public static void main(String[] args) {
     int sum1 = add(4, 6);
     System.out.println("결과1 출력:" + sum1);
     int sum2 = add(30, 20);
     System.out.println("결과2 출력:" + sum2);
 }
 
  //add 메서드
  public static int add(int a, int b) {
     System.out.println(a + "+" + b);
     int sum = a + b;
     return sum;
    }
 }

중복이 제거되고, 코드가 깔끔해진 것을 볼수 있다.

"add" 부분이 메서드 이다. 이것을 메서드를 정의한다고 표현한다.

메서드는 크게 메서드 선언메서드 본문으로 나눌 수 있다.

 

메서드 선언

public static int add(int a, int b)

메서드의 선언 부분으로, 메서드 이름, 반환 타입, 파라미터(int a, int b) 목록을 포함한다.

메서드 선언 정보를 통해 다른 곳에서 해당 메서드를 호출할 수 있다.

 

public static

- public: 다른 클래스에서 호출할 수 있는 메서드라는 뜻

- static: 객체를 생성하지 않고 호출할 수 있는 정적 메서드라는 뜻

 

int add(int a, int b)

- int: 반환 타입을 정의한다. 메서드의 실행 결과를 반환할 때 사용할 반환 타입을 지정한다.

- add: 메서드에 이름을 부여한다. 이 이름으로 메서드를 호출

- (int a, int b): 메서드를 호출할 때 전달하는 입력 값을 정의한다. 이 변수들은 해당 메서드 안에서만 사용된다.

 

 

메서드 본문

{
System.out.println(a + "+" + b);
int sum = a + b;
return sum;
}

- 메서드가 수행하는 코드 블록이다.

- 메서드를 호출하면 메서드 본문이 순서대로 실행

- 메서드의 실행 결과를 반환하려면 "return"문을 사용해야 한다. "return"문 다음에 반환할 결과를 적어주면 된다.

ex) return sum; : sum 변수에 들어있는 값을 반환

 

메서드 호출

     int sum1 = add(4, 6);
     int sum2 = add(30, 20);

앞에 정의한 메서드를 호출해서 실행하려면 메서드 이름에 입력 값을 전달하면 된다.

 

매개변수가 없거나 반환 타입이 없은 경우

 

public static void main(String[] args) {
     header();
     System.out.println("프로그램 동작");
     Footer();
 }
 
 public static void header() { 
 	System.out.println("프로그램 시작");
 }
 
 public static void footer() {
 	System.out.println("프로그램 종료");
 }
 
}

 

<실행결과>

프로그램 시작
프로그램 동작
프로그램 종료

 

"header()", "footer()" 메서드는 매개변수가 없고, 반환 타입도 없다.

매개변수가 없는 경우 위 코드와 같이 " header() " 매개변수를 비워두고 정의하면 된다. 호출 또한 " header(); "와 같이 비워두고 호출하면 된다.

반환타입이 없는 경우 " void "로 정의하면 되며, 호출 할때는 " header(); "와 같이 반환 타입이 없으므로 메서드만 호출하고 반환 값을 받지 않으면 된다.

 

* 모든 메서드는 항상 return 을 호출해야 한다. 하지만 반환 타입이 " void " 의 경우에는 예외로 생략해도 된다. 자바가 반환 타입이 없는 경우에는 return을 자동으로 마지막줄에 넣어준다. 참고로 return을 만나면 해당 메서드는 종료된다.

 

※ 출처: Inflearn 김영한-Java 강의 중