[Java] 메서드 구현하기

Haeun Noh·2022년 8월 18일
0

JAVA_예제

목록 보기
15/23
post-thumbnail

0817


오랜만에 자바 수업을 들었다.
클래스로 들어가기 전, 메서드에 대한 개념을 잡고 가자고 말씀하셨다.
이번 포스팅에서는 메서드와 함수의 차이점과 간단한 메서드를 구현해보도록 하겠다.



메서드(method)란?

: 객체의 동적인 특성인 행위를 표현하는 것
: 클래스 및 객체(object)와 연관되어 있는 함수

메서드가 뭔지 잘 몰랐던 사람도 메서드를 굉장히 많이 사용했을 것이다.
public static void main(String args[]) 에서 많이 봤던 main()이 바로 메서드이다. 그렇다면 앞의 public static void는 무슨 뜻이 있는 건지 궁금증이 들 것이다.
도대체 저것들은 무엇인가.

우선 메서드의 예시를 들어보겠다.

a.plus();	// 각각의 예시만 든 것일 뿐
main();		// 실제로 코드를 이렇게 짠 것이 아니다.

어디서 많이 본 것 같지 않은가? C언어를 배운 사람이라면 단번에 함수같다고 생각할 것이다. 하지만 우리는 알아야 한다. 비슷한데 각각 다른 이름을 가지고 있다면 분명 다른 기능이 있는 것이다.


메서드와 함수의 차이점

메서드와 함수의 차이점의 핵심은 바로 객체에 있다.
메서드는 클래스 및 객체(object)와 연관되어 있는 함수이다.
함수는 sum() abs() 같이 독립적으로 사용된다. 하지만 메서드는 a라는 객체가 존재할 때, a.plus() a.sum()과 같은 형태로 사용된다.


메서드 구현하기

메서드를 간단히 구현해보도록 하자.

public class Method_Test {
	public static void main(String args[]) {
		
		System.out.println(sum_method(1, 10));

		int res = sum_method(5, 15);	
		System.out.println(res);

		int ans = sum_method(100, 250)+10;
		System.out.println(ans);	
	}

	static int sum_method(int begin, int end) {
		int sum = 0;
		for ( int i = begin; i <= end; i++ ) {
			sum += i;
		}
		return sum;
		// System.out.println(sum);
	}
}

위의 예시는 1~10 5~15 100~250까지를 더하는 메서드를 이용한 코드이다. 무언가 새로운 것들이 많이 보이는데 하나하나 찬찬히 뜯어보도록 하겠다.


static int sum_method(int begin, int end) {
		int sum = 0;
		for ( int i = begin; i <= end; i++ ) {
			sum += i;
		}
		return sum;
		// System.out.println(sum);
	}

이 부분을 먼저 보도록 하자.

자세히 보면 sum_method메서드와 main메서드가 구분되어 있다는 것을 확인할 수 있다. sum_method에 들어있는 변수와 main에 있는 변수는 다른 변수가 될 수 있다는 것을 여기서 유추할 수 있다.

그런데 메서드명 앞에 이상한 것들이 다닥다닥 붙어있다. staticint인데 이것들이 의미하는 바는 과연 무엇일까?

static정적메서드라고 불리는데, 정적(static)은 고정된이란 의미를 가지고 있다. static은 모든 객체가 공유하여 하나의 멤버를 어디서든지 참조할 수 있는 장점이 있다.

int는 우리가 아는 바로 그 int이다. 정수형을 의미하는데 무엇의 데이터타입인가 하면, 바로 리턴값의 데이터타입을 의미한다.
sum_method메서드 앞에 int가 있고 리턴값이 sum이라면 sum의 데이터타입이 정수형이라는 사실도 알 수 있다.

이번에는 (int begin, int end)에 대해서 살펴보자.
beginend매개변수라고 불리는데, 이 매개변수란 함수를 정의할 때 사용되는 변수를 의미한다.


public class Method_Test {
	public static void main(String args[]) {
		
		System.out.println(sum_method(1, 10));

		int res = sum_method(5, 15);	
		System.out.println(res);

		int ans = sum_method(100, 250)+10;
		System.out.println(ans);	
	}

	static int sum_method(int begin, int end) {
		int sum = 0;
		for ( int i = begin; i <= end; i++ ) {
			sum += i;
		}
		return sum;
		// System.out.println(sum);
	}
}

다시 위의 예제로 돌아가서 매개변수를 이해해보자.
코드의 4번째 줄에 sum_method메서드와 함께 (1, 10)이 있는 것을 진작에 알아차렸을 것이다. 이 (1, 10)은 각각 beginend에 들어갈 변수 값들이다. sum_method를 호출하면 110의 값이 각각 beginend에 저장되고, 메서드 안의 코드를 실행한 후 sum의 값을 리턴하면 4번째 줄로 다시 돌아와 sum의 값을 출력하게 된다. 이 방식은 7번째, 10번째 줄도 마찬가지이다.

이렇게 보니 훨씬 코드가 간단해보이지 않는가?
메서드는 이렇게 한 프로그램을 만들어두고 다시 쓸 필요 없이 쓰고 싶을 때마다 갖다 쓰면 된다는 편리함과 동시에 코드의 가독성을 높여준다.

이제 메서드를 왜 사용하는지 감이 잡혔는가?



profile
기록의 힘을 믿는 개발자, 노하은입니다!

0개의 댓글