개발 일지/Java

[Java] 메서드(Method)

미숫가루설탕많이 2022. 12. 27. 23:39

 메서드(Method)는 java를 포함한 객체 지향 프로그래밍 언어에서 클래스 내부에서 정의된 함수(객체의 함수)를 말한다. '특정 작업을 수행하는 일련의 명령문들의 집합'을 의미하며, 클래스의 기능에 해당하는 내용들을 담당한다.

 

 메서드는 크게 머리에 해당하는 메서드 시그니처(method signature)와 몸통에 해당하는 메서드 바디(method body)로 구분할 수 있다.

 

자바제어자 반환타입 메서드명(매개 변수) { // 메서드 시그니처
	메서드 내용	// 메서드 바디
}

 

 메서드 시그니처는 자바 제어자, 반환타입, 메서드명 그리고 매개 변수로 이루어져 있다. 즉, 해당 메서드가 어떤 타입을 반환하는가, 메서드 이름은 무엇이며 해당 작업을 수행하기 위해서 어떤 재료들이 필요한지에 대한 정보를 포함하고 있다. 여기서 메서드명은 관례적으로 소문자로 표시한다.

 

 메서드 바디는 중괄호 안에 해당 메서드가 호출되었을 때 수행되어야 하는 일련의 작업들을 표시한다.

 

 만약 메서드의 반환타입이 void가 아닌 경우에는 메서드 바디 안에 반드시 return문이 존재해야 한다. return문은 작업을 수행한 결과값을 호출한 메서드로 전달한다. 여기서 결과값은 반드시 반환타입과 일치하거나 자동 형변환이 가능한 것이어야 한다.

 

void printHello() { // 반환타입이 void인 메서드
	System.out.println("hello!");
}

 

 위 코드의 printHello 메서드는 반환 타입이 void 이므로 반환 값이 없는 메서드를 의미한다. 따라서 printHello 메서드는 호출되면 hello! 라는 내용을 출력하고 종료된다.

 

int getNumTen() { // 매개변수가 없는 메서드
	return 10;
}

 

 위 코드에서 getNumTen 메서드는 int 타입의 결과값을 반환하는 매개변수가 없는 메서드이므로 해당 메서드가 호출되면 숫자 10만 반환하면 되기 때문에 매개 변수가 필요하지 않다.

 

Double multiply(int x, double y) { // 매개변수가 있는 메서드
	double result = x * y;
	return result;
}

 

 위 코드에서 multiply 메서드는 매개 변수 x와 y를 전달받아 반환 타입이 double인 result를 반환하는 메서드이다. 여기서 int와 double형을 산술 연산하면 범위가 더 큰 타입으로 자동 형변환이 이루어진다.

 

 

 

 

메서드 호출


 메서드도 클래스의 멤버이므로 클래스 외부에서 메서드를 사용하기 위해서는 먼저 인스턴스를 생성해야 한다. 인스턴스를 생성한 후에 포인트 연산자(.)를 통해 메서드를 호출할 수 있다. 반면, 클래스 내부에 있는 메서드끼리는 따로 객체를 생성하지 않고도 서로를 호출할 수 있다.

 

 메서드 호출 시에 소괄호 안에 넣어주는 입력 값을 '인자(argument)'라고 하는데 인자의 개수와 순서는 반드시 메서드를 정의할 때 선언된 매개 변수와 일치되어야 한다. 인자의 타입 또한 매개 변수의 그것과 일치하거나 자동 형변환이 가능한 것이어야 한다.

'개발 일지 > Java' 카테고리의 다른 글

[Java] 생성자(Constructor, ctor)  (0) 2022.12.28
[Java] 메서드 오버로딩(Method Overloading)  (0) 2022.12.27
[Java] static 키워드  (0) 2022.12.27
[Java] 필드(Field)  (0) 2022.12.27
[Java] 객체(Object)  (0) 2022.12.27