본문 바로가기

Java/Java 문법

[Java] static method (정적 메서드), instance method (인스턴스 메서드)

728x90
반응형

static method (정적 메서드)

 

정적 메서드는 Class 레벨에서 정의되며 특정 인스턴스에 속하지 않는다.

 

즉 인스턴스를 생성하지 않고도 호출할 수 있는 메서드이다.

 

따라서 정적 메서드는 클래스 레벨에서 동작하지만 인스턴스 변수에 접근할 수 없고 정적 변수에만 접근이 가능하다.

 

인스턴스를 통해 호출하는 것도 문법에 위배되지는 않지만 권장하는 방법이 아니다.

 

정적 메서드는 아래 코드와 같이 사용할 수 있다.

 

class Example {
    static int add(int a, int b) {
        return a + b;
    }
    static int multiply(int a, int b) {
        return a * b;
    }

    public static void main(String[] args) {
        int num1 = add(5, 7);
        int num2 = Example.add(10, 5);
        System.out.println(num1);
        System.out.println(num2);
    }
}

 

 

 

class 외부에서 접근할 때에는 인스턴스를 통해서 접근할 필요 없이 class 이름을 통해서 접근할 수 있다.

 

class math {
    static int add(int a, int b) {
        return a + b;
    }
    static int multiply(int a, int b) {
        return a * b;
    }
}

class Example {
    public static void main(String[] args) {
        int num1 = math.add(5, 7);
        int num2 = math.add(10, 5);
        System.out.println(num1);
        System.out.println(num2);
    }
}

 

 

 

 

 

 

instance method (인스턴스 메서드)

 

instance method는 static 선언 없이 정의된 메서드로 class 외부에서 접근할 때에는 인스턴스를 통해서 접근해야 한다.

 

따라서 아래 코드처럼 사용할 수 있다.

 

class math {
    int add(int a, int b) {
        return a + b;
    }
    int multiply(int a, int b) {
        return a * b;
    }
}

class Example {
    public static void main(String[] args) {
        math a = new math();
        int num1 = a.add(5, 7);
        int num2 = a.add(10, 5);
        System.out.println(num1);
        System.out.println(num2);
    }
}

 

 

 

 

 

728x90
반응형