메서드는 동작(기능)에 해당하는 중괄호 { } 블록을 말합니다. 메서드는 선언부와 실행 블록으로 구성되어 있습니다.
지금까지 늘 기본으로 사용해 왔던 main() 함수도 사실은 메서드입니다.
여러 메서드를 선언하고 사용할 때는 모두 main 메서드에서 호출하여 사용하게 됩니다.
메서드의 선언부는 리턴 타입 메서드 이름(매개변수 선언 ...) 형식으로 구성됩니다.
리턴 타입은 메서드가 리턴하는 결과의 타입을 나타냅니다.
메서드 이름은 메서드의 기능이 나타나도록 식별자 규칙에 맞게 작성해 줍니다.
매개변수 선언은 메서드를 호출하여 실행할 때 필요한 데이터를 받기 위한 변수를 의미합니다.
메서드에서 리턴 타입은 메서드에서 리턴해주는 값의 타입을 나타낸다고 했는데, 리턴 값이란 메서드를 실행한 후의 결괏값을 말합니다. 리턴 값은 메서드 별로 있을 수도 있고, 없을 수도 있습니다. 리턴 값이 있을 경우 리턴 타입이 선언부에 명시되어야 합니다. 리턴 값이 없다면 메서드의 리턴 타입은 void로 명시해 주면 됩니다.
리턴 타입이 있는 메서드는 반드시 return 문을 사용해 리턴 값을 지정해 줘야 합니다.
return 문의 리턴 값은 리턴 타입이거나 리턴 타입으로 변환될 수 있어야 합니다.
void로 선언된 메서드에 return 문을 사용하면 메서드 실행을 강제 종료하게 됩니다.
또한 System.exit(0); 은 프로그램 자체를 강제 종료하는 명령문입니다.
메서드에서 매개변수 또한 필요한 경우가 있고 필요하지 않은 경우가 있습니다.
클래스 내부에서 다른 메서드를 호출할 때는 메서드 이름(매개변수 값, ...) 형식으로 작성하여 호출하는데, 만약 호출하는 메서드가 매개변수를 필요로 하는 메서드라면 호출할 때 값을 인수로 줘야 합니다.
메서드를 호출하여 인수로 매개변수에 값을 전달할 때는 매개변수의 타입과 개수에 맞게 인수를 전달해야 합니다.
한 클래스에서 동일한 이름의 메서드가 존재할 수 있습니다. 이것을 메서드 오버로딩(Overloading)이라고 합니다.
메서드 오버로딩이란 클래스 내에 같은 이름의 메서드를 여러 개 선언하는 것을 말하는데, 하나의 메서드 이름으로 여러 기능을 담는다고 생각할 수 있습니다.
메서드 오버로딩은 각 메서드마다 매개변수의 타입이 다르거나, 개수가 다르거나, 순서가 다르거나, 무조건 하나 이상은 달라야 합니다.
만약 메서드를 호출할 때 전달되는 매개변수의 개수를 모를 때는 자료형... 매개변수 이름으로 작성할 수도 있고, 아니면 배열의 형태로 매개변수를 선언해 줄 수 있습니다.
만약 메서드를 호출하여 매개변수로 값을 전달하고 메서드 내에서 매개변수 값을 변경할 때는 return 문을 사용하여 변경된 값을 반환해 주거나 전역 변수를 매개변수로 전달해 주거나 아니면 변수의 주소를 매개변수로 전달해줘야 합니다. 이때 배열을 매개변수로 전달할 때 배열의 이름이 배열의 주소를 가지고 있기 때문에 배열의 이름 그대로 전달하여 메서드 내에서 변경할 수 있습니다.
'프로그래밍 언어 > 자바 (Java)' 카테고리의 다른 글
[자바(Java) 공부하기] 15. 클래스 배열(객체 배열) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.15 |
---|---|
[자바(Java) 공부하기] 14. 생성자 - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.14 |
[자바(Java) 공부하기] 13. 필드 - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.13 |
[자바(Java) 공부하기] 12. 클래스 - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.12 |
[자바(Java) 공부하기] 10. 배열 - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.10 |
[자바(Java) 공부하기] 9. 반복문 - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.09 |
[자바(Java) 공부하기] 8. 조건문 - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.08 |
[자바(Java) 공부하기] 7. 연산자 - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.07 |