클래스 멤버와 인스턴스 멤버간의 참조와 호출

최대 1 분 소요

  • 같은 클래스에 속한 멤버들 간에는 별도의 인스턴스를 생성하지 않고도 서로 참조, 호출이 가능하다.
  • 단, 클래스 멤버가 인스턴스 멤버를 참조 또는 호출하고자 할 경우 인스턴스를 생성해야 한다.
    • 인스턴스 멤버가 존재하는 시점에 클래스 멤버는 항상 존재하지만, 클래스 멤버가 존재하는 시점에는 인스턴스 멤버의 존재가 확실치 않다.
  • 변수도 마찬가지로 인스턴스 메서드에서는 클래스 변수를 사용할 수 있지만, 클래스 메서드에서는 인스턴스 변수를 사용할 수 없다.
클래스 멤버(변수, 메서드)는 언제나 참조 호출이 가능하기에 
인스턴스 멤버가 클래스 멤버를 사용하는 것은 문제가 되지 않으며,
클래스 멤버간의 참조, 호출 또한 문제 없다.

인스턴스 멤버는 항상 인스턴스를 생성한 이후에 참조, 호출이 가능하기 때문에
클래스 멤버가 인스턴스 멤버를 참조, 호출하기 위하여 객체를 생성해야만 한다.

실제로, 클래스 멤버에서 인스턴스 멤버를 호출해야하는 상황이 온다면,
인스턴스 멤버로 정의되어야 했을 멤버를 클래스 멤버로 정의한 것은 아닌지 확인해볼 필요가 있을 것이다.

댓글남기기