본문 바로가기

프로그래밍/자바

[JAVA] 자바 클래스, 인스턴스

※ 공부하면서 새롭게 알게 된 점 위주로 정리 (Java의 정석 3판)

 

클래스 메서드

  • static이 붙은 메서드
  • 객체를 생성하지 않고 호출 가능 ex) 클래스이름.메서드이름
  • 인스턴스 변수 사용 불가능 => 인스턴스 변수가 필요 없다면 클래스 메서드 사용 고려
  • 같은 클래스 멤버일 경우라도 인스턴스 멤버를 참조/호출 할 경우, 인스턴스 반드시 생성해야 함

인스턴스 메서드

  • 객체를 생성해야 호출 가능
  • 같은 클래스 멤버일 경우, 인스턴스 생성없이 호출 가능
예시
public class mathTest {
    int a, b; // 인스턴스 변수

    int add() {return a+b;} // 인스턴스 메서드
    static int mul(int a, int b) {return a*b;} // 클래스 메서드

    void iMethod(){
        add();
        mul(2,2);
    }

    static void sMethod(){
        add(); // 에러, 인스턴스 멤버 사용 불가
        mul(2,2);
    }
}

public class Test {
    public static void main(String args[]){
        System.out.println(mathTest.mul(2,2)); // 인스턴스 생성없이 호출 가능

        mathTest test = new mathTest(); // 인스턴스 생성해야 add() 호출 가능
        test.a = 2;
        test.b = 5;
        System.out.println(test.add());
    }
}

cf) 다음 2문장을 1문장으로 합칠 수 있다.

MemberCall c = new MemberCall();
int result = c.instanceMethod1();
int result = new MemberCall().instanceMethod1();

'프로그래밍 > 자바' 카테고리의 다른 글

22-11-06 배운 내용  (0) 2022.11.07
22-10-30 배운내용  (0) 2022.10.30
[JAVA] 자바 오버로딩 (Overloading), 가변인자 (varargs)  (0) 2022.09.28
[JAVA] 자바 변수, static  (0) 2022.09.14
[JAVA] 자바 클래스 (Class)  (0) 2022.09.14
Recent Posts
Popular Posts