Method
자바에서 메서드는 프로그램의 기능을 구현하고 실행하는 데 사용되는 중요한 개념입니다.
메서드를 잘 이해하고 활용하면 코드의 재사용성과 가독성을 높일 수 있습니다.
그럼 자세히 알아보도록 하겠습니다.
1. 메서드란?
메서드는 클래스 내에서 어떤 작업을 수행하기 위한 코드의 집합입니다.
특정한 기능을 수행하는 코드 블록으로, 메서드를 호출하여 원하는 작업을 실행할 수 있습니다.
메서드는 입력값을 받아들일 수도 있고, 반환값을 가질 수도 있습니다.
자바에서는 메서드를 선언하고 정의하여 사용합니다.
2. 메서드의 구조
메서드는 일반적으로 다음과 같은 구조를 가지고 있습니다.
[접근 제어자] [리턴 타입] [메소드 이름]([매개변수 목록]) {
// 메소드 실행 내용
[return 반환값;]
}
1. 접근 제어자
접근 제어자는 클래스, 인터페이스, 멤버 변수, 메소드 등의 접근 범위를 제한하는 키워드입니다.
클래스 외부에서의 접근을 제한하여 정보 은닉과 캡슐화를 실현하며, 객체 지향 프로그래밍의 핵심 원칙 중 하나인 캡슐화를 지원합니다.
1) 접근 제어자의 종류
- public
- 어떤 클래스든 접근 가능합니다. 다른 패키지에서도 접근 가능합니다.
- protected
- 동일한 패키지 내에서 접근 가능하며, 다른 패키지의 자식 클래스에서도 접근 가능합니다.
- default
- 접근 제어자를 명시하지 않은 경우, 동일한 패키지 내에서만 접근 가능합니다.
- private
- 해당 클래스 내에서만 접근 가능합니다.
2) 접근 제어자의 사용
접근 제어자는 클래스, 멤버 변수, 메소드에 적용할 수 있습니다.
- 클래스의 접근 제어자
- 클래스를 선언할 때 public 또는 default 접근 제어자를 사용할 수 있습니다.
- public 클래스는 어떤 클래스든 접근 가능하며, default 접근 제어자는 동일한 패키지 내에서만 접근 가능합니다.
- 멤버 변수의 접근 제어자
- 멤버 변수에 public, protected, default, private 접근 제어자를 사용하여 접근 범위를 설정할 수 있습니다.
- 멤버 변수는 클래스의 상태를 나타내므로, 적절한 접근 제어자를 선택하여 정보 은닉을 지향해야 합니다.
- 메소드의 접근 제어자
- 메소드에 public, protected, default, private 접근 제어자를 사용하여 접근 범위를 설정할 수 있습니다.
- 메소드는 클래스의 동작을 정의하므로, 적절한 접근 제어자를 선택하여 외부로부터의 접근을 제한할 수 있습니다.
3) 접근 제어자의 활용
접근 제어자를 적절히 활용하면 코드의 안정성과 유지 보수성을 향상시킬 수 있습니다.
정보 은닉을 통해 외부에서의 무분별한 접근을 제한하고, 필요한 기능만을 외부에 노출하여 객체를 조작하는 것이 바람직합니다.
또한, 접근 제어자를 이용하여 API의 일관성을 유지하고 다른 개발자들과의 협업을 원활하게 할 수 있습니다.
2. 리턴 타입
메소드가 반환하는 값의 타입을 지정합니다. 반환값이 없을 경우 void로 지정합니다.
3. 메서드 이름
메소드의 이름을 식별하기 위한 식별자입니다.
4. 매개변수 목록
매개변수는 메소드에 전달되는 값을 받아들이는 변수입니다.
메소드가 호출될 때 인자(argument)라는 값이 매개변수로 전달되며, 이 값은 메소드의 실행에 사용됩니다.
매개변수는 메소드의 동작을 제어하고 메소드에 필요한 데이터를 전달하는 데 사용됩니다.
※ argument: 메서드를 호출할 때 메서드에게 전달하는 값.
※ parameter: argument를 저장하기 위한 메서드의 지역 변수.
1) 매개변수 선언
매개변수는 메소드 선언 시 메소드 이름 뒤에 괄호 내에 선언됩니다.
각 매개변수는 타입과 이름으로 구성됩니다.
예를 들어, 다음은 두 개의 정수 값을 받는 메소드의 매개변수 선언 예시입니다.
public void calculateSum(int a, int b) {
// 메소드 실행 내용
}
2) 매개변수의 전달
메소드를 호출할 때에는 해당 메소드의 매개변수에 전달할 값을 인자로 전달합니다.
메소드 호출 시 전달되는 인자는 매개변수의 타입과 일치해야 합니다.
예를 들어, 위에서 정의한 calculateSum 메소드를 호출할 때에는 다음과 같이 인자를 전달합니다.
calculateSum(3, 4);
3) 매개변수의 개수와 타입
메소드는 필요한 만큼의 매개변수를 가질 수 있으며, 매개변수의 타입도 자유롭게 선택할 수 있습니다.
메소드의 동작에 필요한 정보를 매개변수로 전달하여 원하는 작업을 수행할 수 있습니다.
매개변수의 개수와 타입은 메소드의 사용 목적에 따라 유연하게 결정됩니다.
4) 가변 인자 매개변수
자바 5부터 가변 인자(varargs) 매개변수를 사용할 수 있습니다. 가변 인자 매개변수는 동적으로 길이가 변할 수 있는 인자의 시퀀스를 전달하는 데 사용됩니다. 가변 인자 매개변수는 메소드 선언 시 타입 뒤에 `...`을 붙여서 표시합니다.
public void printNumbers(int... numbers) {
for (int num : numbers) {
System.out.println(num);
}
}
※ 가변인자: 자바에서 메소드에 동적으로 길이가 변할 수 있는 인자의 시퀀스를 전달하는 기능입니다.
5. 메서드 실행 내용
메소드가 실제로 수행하는 작업을 기술합니다.
6. 반환 값
메소드가 처리한 결과를 반환합니다. 리턴 타입이 void인 경우 생략할 수 있습니다.
3. 메서드의 활용
메소드는 코드의 재사용성과 모듈화를 위해 사용됩니다.
반복적으로 수행되는 작업을 메소드로 정의하면, 해당 작업을 필요한 곳에서 간편하게 호출하여 사용할 수 있습니다.
또한, 프로그램의 가독성을 높이고 유지 보수를 용이하게 만들어줍니다.
※ 모듈화: 코드와 리소스를 논리적으로 구분하여 관리하고, 재사용성과 유지보수성을 향상시키는 개발 방법입니다.
4. 메서드 호출
메소드를 호출하기 위해서는 해당 메소드의 이름과 필요한 인자 값을 전달해야 합니다.
메소드 호출은 다음과 같은 형식으로 이루어집니다.
[리턴 값의 타입] 변수명 = 메소드 이름([인자 값]);
예를 들어, 반환값이 없는 메소드를 호출할 때는 다음과 같이 사용할 수 있습니다.
printMessage("Hello, Java!");
반환값이 있는 메소드의 호출 결과는 변수에 저장할 수 있습니다.
int sum = calculateSum(3, 4);
메소드를 호출할 때에는 메소드의 이름과 매개변수의 타입과 개수가 일치해야 합니다.
5. 메서드의 오버로딩(overloading)
자바에서는 메소드 오버로딩(Method Overloading)이라는 개념을 통해 같은 이름의 메소드를 여러 개 정의할 수 있습니다.
메소드 오버로딩은 매개변수의 타입, 개수, 순서가 다르게 하여 다양한 형태의 메소드를 정의하는 것입니다.
이를 통해 메소드의 이름을 일관성 있게 사용할 수 있으며, 코드의 가독성과 재사용성을 높일 수 있습니다.
잘못된 정보는 댓글로 알려주시면 감사하겠습니다.
'Java' 카테고리의 다른 글
Java - 12. 자바의 생성자(Constructor) - 객체 초기화 (0) | 2023.07.14 |
---|---|
Java - 11. 자바의 함수(function)과 메서드(method)와의 차이점 (0) | 2023.07.13 |
Java - 9. 자바 배열(Array) 이해하기. (0) | 2023.07.11 |
Java - 8. Switch문과 Switch에서 enum 사용하기. (1) | 2023.07.10 |
Java - 7. 자바의 for문, 향상된 for문 반복문 (0) | 2023.07.09 |