..

Search

38) 메소드의 구분

38) 메소드의 구분

메소드의 구분


메소드의 구분

클래스의 메소드(method)란 어떠한 작업을 수행하기 위한 명령문의 집합이라 할 수 있습니다.

클래스 내에서 메소드는 static 키워드의 여부에 따라 다음과 같이 구분됩니다.

 

1. 클래스 메소드(static method)

2. 인스턴스 메소드(instance method)

 

예제

class Car {

    boolean door;                       // 인스턴스 변수

    void openDoor() {                   // 인스턴스 메소드

        door = true;

    }

    static void toggleDoor(boolean d) { // 클래스 메소드

        return !d;

    }

}


클래스 메소드와 인스턴스 메소드

위와 같이 static 키워드를 가지는 메소드를 클래스 메소드(static method)라고 합니다.

또한, static 키워드를 가지지 않는 메소드는 인스턴스 메소드(instance method)라고 합니다.

 

클래스 메소드는 클래스 변수와 마찬가지로 인스턴스를 생성하지 않고도 바로 사용할 수 있습니다.

따라서 클래스 메소드는 메소드 내부에서 인스턴스 변수를 사용할 수 없습니다.

그러므로 메소드 내부에서 인스턴스 변수나 인스턴스 메소드를 사용하지 않는 메소드를 클래스 메소드로 정의하는 것이 일반적입니다.

 

다음 예제는 클래스의 메소드를 종류별로 생성하고 접근하는 예제입니다.

예제

class Method {

    int a = 10, b = 20;                            // 인스턴스 변수

    int add() { returnb; }                    // 인스턴스 메소드

    static int add(int x, int y) { returny; } // 클래스 메소드

}

 

public class Member02 {

    public static void main(String[] args) {

        System.out.println(Method.add(20, 30)); // 클래스 메소드의 호출

        Method myMethod = new Method();         // 인스턴스 생성

        System.out.println(myMethod.add());     // 인스턴스 메소드의 호출

    }

}

코딩연습 ▶

실행 결과

50

30

 

위의 예제처럼 클래스 메소드는 인스턴스 변수를 사용하지 않고, 전달된 매개변수만으로 동작하는 메소드입니다.


연습문제