메소드(Method)

공부하자·2023년 4월 6일
2

그녀를 붙Java

목록 보기
1/8

메소드(Method)는 객체지향 프로그래밍에서 중요한 개념 중 하나입니다. 클래스 내부에 선언된 함수로, 필드(멤버 변수)를 이용하여 필요한 기능을 제공하기 위한 명령의 모임입니다.

함수(Function)는 매개변수로 값을 제공받아 계산하여 결과를 반환하는 명령의 모임이며, 기능을 제공합니다.

메소드는 다음과 같은 방법으로 선언됩니다.

ex)
반환형 메소드명(자료형 변수명, 자료형 변수명, ...) {
명령; (메소드를 호출하면 실행되는 명령)
...
}

public class Example { 
// 반환형 int : 메소드명 add : 자료형 변수명 : int x, int y
    public static int add(int x, int y) { // 명령
        int result = x + y;
        return result;
    }
}

여기서 반환형(ReturnType)은 메소드를 호출하여 얻을 수 있는 결과값에 대한 자료형입니다. void 자료형(무반환형)은 메소드를 호출하여 얻을 수 있는 결과값이 없는 경우 사용하는 자료형입니다. 메소드의 () 기호에는 변수를 나열하여 선언되며, 이를 매개변수(Parameter - Argument)라고 합니다. 매개변수는 메소드에 작성된 명령을 실행하기 위해 메소드 호출 시 전달될 값을 저장하기 위한 변수입니다. 만약 메소드에 작성된 명령을 실행하기 위한 값이 필요하지 않은 경우에는 매개변수를 생략할 수 있습니다.

메소드를 호출하는 방법은 다음과 같습니다.

ex)
메소드명(값, 값, ...)

add(3, 4);

여기서 객체가 저장된 참조변수를 사용하여 객체의 메소드를 호출합니다. 메소드 호출 시 매개변수에 차례대로 값을 전달하여 메소드를 호출합니다. 만약 매개변수에 값이 정상적으로 전달되지 않으면 메소드 호출이 불가능하며, 에러가 발생합니다.

메소드 안에서는 return 키워드를 사용하여 메소드를 강제로 종료할 수 있습니다. 이를 활용하면 메소드의 반환형을 void로 작성하여 메소드를 강제로 종료하거나, 대상(변수 또는 연산식)의 값을 반환하여 메소드를 호출하는 명령에게 제공할 수 있습니다. 이 때, 메소드의 반환형은 대상의 자료형과 반드시 같도록 작성해야 합니다.

위 내용을 코드로 나타내면 다음과 같습니다.

ex)

public class Example {
    private int number;
    
    // 값을 설정하는 메소드
    public void setNumber(int num) {
        number = num;
    }
    
    // 값을 반환하는 메소드
    public int getNumber() {
        return number;
    }
    
    // 값이 양수인지 검사하는 메소드
    public boolean isPositive() {
        if (number > 0) {
            return true; // 값이 양수인 경우 true 반환
        } else {
            return false; // 값이 양수가 아닌 경우 false 반환
        }
    }
    
    public static void main(String[] args) {
        Example ex = new Example(); // 객체 생성
        ex.setNumber(10); // 메소드 호출
        System.out.println("Number: " + ex.getNumber()); // 메소드 호출 및 출력
        System.out.println("Positive: " + ex.isPositive()); // 메소드 호출 및 출력
        
        ex.setNumber(-5); // 메소드 호출
        System.out.println("Number: " + ex.getNumber()); // 메소드 호출 및 출력
        System.out.println("Positive: " + ex.isPositive()); // 메소드 호출 및 출력
    }
}

예제는 클래스 Example를 정의하고, 이 클래스에서 값을 설정하고 반환하는 메소드 setNumber, getNumber와 값을 검사하여 양수인지 여부를 반환하는 메소드 isPositive를 정의하였습니다.

isPositive 메소드에서는 if문을 사용하여 number가 0보다 큰 경우 true를, 그렇지 않은 경우 false를 반환합니다. 이 때, return 키워드를 사용하여 값을 반환하면서 메소드를 강제로 종료합니다. 이러한 방식으로 return 키워드를 사용하여 메소드를 강제로 종료할 수 있습니다.

main 메소드에서는 객체를 생성하고 setNumber 메소드를 호출하여 값을 설정한 후, getNumber와 isPositive 메소드를 호출하여 값을 출력합니다. 이를 통해 isPositive 메소드가 값을 검사하여 올바르게 동작하는지 확인할 수 있습니다.


0개의 댓글