static 메서드와 인스턴스 메서드

GW·2023년 7월 29일

인스턴스 메서드

  • 인스턴스 생성 후 , 참조변수.메서드이름() 으로 호출
  • 인스턴스 멤버(iv,im)와 관련된 작업을 하는 메서드
  • 메서드 내에서 인스턴스 변수(iv) 사용가능

static 메서드(클래스 메서드)

  • 객체생성 없이 클래스이름. 메서드 이름()으로 호출
  • 인스턴스 멤버(iv,im)와 관련없는 작업을 하는 메서드
  • 메서드 내에서 인스턴스 변수(iv) 사용불가

static 메서드는 iv를 사용하지 않을떄 사용

static을 언제 붙여야할까?

  • static은 속성(멤버변수) 중에서 공통 속성에 static을 붙인다.

  • 인스턴스 멤버(iv,im)을 사용하지 않는 메서드에 static을 붙인다.

class TestClass2{
	int iv;			//인스턴스 변수
    static int cv; // 클래스 변수
    
    void instanceMethod(){      //인스턴스 메서드
     	System.out.println(iv); // 인스턴스 변수를 사용할 수 있다.
        System.out.println(cv); // 클래스 변수를 사용할 수 있다.
    }
    static void staticMethod(){ //static 메서드
    	System.out.println(iv); //에러!! 인스턴스 변수를 사용할 수 없다.
        System.out.println(cv); // 클래스 변수는 사용할 수 있다.
    }
}

Q.static 메서드는 static 메서드 호출가능?
A.네
Q.static 메서드는 인스턴스 변수 사용가능?
A.아니요
Q.static 메서드는 인스턴스 메서드 호출가능?
A.아니요
Q.왜 static 메서드는 인스턴스 멤버를 쓸 수 없나요?
A. stiatc 메서드 호출시 객체(iv묶음)가 없을 수도 있어서

0개의 댓글