1. 메소드(Method)
자바에서 클래스는 멤버(member)로 속성을 표현하는 필드(field)와 기능을 표현하는 메소드(method)를 가진다.
메소드는 특정 작업을 수행하는 코드 블록으로 전체의 문장을 하나로 묶어서 실행할 수 있게 하는 명령문의 집합이다.
보통 프래그래밍 언어는 위에서 아래로 읽히는데, 메서드를 중간에 삽입하면 호출이 가능하다.
(메소드를 호출한 곳으로 돌아옴)
호출 시, 어떠한 값을 미리 주고(전달인자: Arguments) → 그 값을 받는 변수(매개변수: Parameters)로 활용해서 메소드 수행이 가능하다.
메소드를 사용하는 목적은 코드를 재사용할 수 있고, 모듈화(코드를 논리적인 단위로 나눌 수 있다) 할 수 있다는 점에서 코드의 가독성을 향상하고, 유지보수에 용이하다. 그리고 코드를 쉽게 재구성하고 최적화할 수 있어서 성능을 향상하기 위해서도 필요하다.
예시]
public class Example {
// 두 개의 정수를 매개변수로 받아서 합을 출력하는 메소드
public static void printSum(int a, int b) {
int sum = a + b;
System.out.println("Sum: " + sum);
}
// 세 개의 문자열을 매개변수로 받아서 결합하여 출력하는 메소드
public static void printConcatenation(String str1, String str2, String str3) {
String result = str1 + " " + str2 + " " + str3;
System.out.println("Concatenated string: " + result);
}
// 메소드 호출
public static void main(String[] args) {
printSum(5, 3); // 출력 결과: Sum: 8
printConcatenation("Hello", "World", "!"); // 출력 결과: Concatenated string: Hello World !
}
}
[ Chat GPT 예시 참고 ]
# 메소드 호출 방법
클래스명 사용할 이름 = new 클래스명();
사용할 이름. 메소드명();
# 메소드의 종류
메소드는 크게 인스턴스 메소드(Instance Methods)와 정적 메소드(Static Methods)로 나뉜다.
- 인스턴스 메소드(Instance Methods):
- 객체의 인스턴스에 속한 메소드이다.
- 객체가 생성되어야만 호출할 수 있다.
- 메소드 내부에서는 해당 객체의 상태에 접근할 수 있다.
- 정적 메소드(Static Methods):
- 클래스 자체에 속한 메소드입니다.
- 객체의 인스턴스와는 관계없이 클래스명으로 직접 호출할 수 있다.
예를 들어, ClassName.methodName()과 같은 형식으로 호출할 수 있다. - 메소드 내부에서는 정적 변수(static variables)나 다른 정적 메소드(static methods)만 접근할 수 있으며,
인스턴스 변수(instance variables)나 인스턴스 메서드(instance methods)에는 직접 접근할 수 없다. - 유틸리티 기능 제공하는 데 사용한다. 예를 들어 자주 사용되는 수학적인 계산이나 문자열 처리와 같은 기능을 제공할 수 있다.
- 호출식: 클래스명. 메소드명();
public class MathUtils {
// 정적 메소드: 두 정수의 합을 반환
public static int add(int a, int b) {
return a + b;
}
// 정적 메소드: 절대값을 반환
public static int abs(int num) {
return num >= 0 ? num : -num;
}
}
[ Chat GPT 예시 참고 ]
# 메서드의 반환 유형(Return Type)
- 반환값(return)이 있는 메소드: 결과를 반환하고, 호출한 곳으로 값을 전달한다.
- 주로, void가 아닌 자료형은 모두 return값이 필요하다. return은 현재 메서드를 강제 종료하고, 호출한 구문으로 다시 돌아가는 명령이다. - 반환값이 없는 메소드(void): 결과를 반환하지 않고, 단순히 작업을 수행한다.
- void 메소드는 마지막 줄에서 컴파일러가 자동으로 추가해 주기 때문에 return; 을 따로 작성하지 않아도 된다.
[ 배경사진 출처: 사진: Unsplash의Joan Gamell ]
'프로그래밍 언어 > Java' 카테고리의 다른 글
배열(Array) (0) | 2024.06.25 |
---|---|
패키지(Package), 임포트(import) (0) | 2024.06.25 |
연산자(Operator) 종류와 연산자의 우선순위 (0) | 2024.06.25 |
오버플로우 (Overflow), 언더플로우(Underflow) / 형변환(Typecasting) (0) | 2024.06.25 |
변수(Variable), 상수(Constant) (0) | 2024.06.25 |