프로그래밍 언어/Java

메소드(Method)

devlara 2024. 6. 25. 16:08
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)로 나뉜다.

  1. 인스턴스 메소드(Instance Methods):
    • 객체의 인스턴스에 속한 메소드이다.
    • 객체가 생성되어야만 호출할 수 있다.
    • 메소드 내부에서는 해당 객체의 상태에 접근할 수 있다.
  2. 정적 메소드(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)

  1. 반환값(return)이 있는 메소드: 결과를 반환하고, 호출한 곳으로 값을 전달한다.
    - 주로, void가 아닌 자료형은 모두 return값이 필요하다. return은 현재 메서드를 강제 종료하고, 호출한 구문으로 다시 돌아가는 명령이다.
  2. 반환값이 없는 메소드(void): 결과를 반환하지 않고, 단순히 작업을 수행한다.
    - void 메소드는 마지막 줄에서 컴파일러가 자동으로 추가해 주기 때문에 return; 을 따로 작성하지 않아도 된다.

 

 

[ 배경사진 출처: 사진: UnsplashJoan Gamell  ]