본문 바로가기

자바의 정석 정리

자바의 정석 - 6.6 클래스와 인스턴스

6.6.1 클래스 메서드와 인스턴스 메서드의 구분

  • 메서드 앞에 static의 유무로 판단 가능
  • 클래스 메서드 : static이 있음
  • 인스턴스 메서드 : static이 없음

6.6.2 클래스 메서드

  • 클래스가 메모리에 올라갈 때 static이 붙은 멤버는 자동 생성
  • 인스턴스와 관계 없는 메서드를 클래스 메서드로 선언
  • 객체를 생성하지 않아도 '클래스이름.메서드이름'으로 호출 가능
  • 인스턴스 호출 불가

6.6.3 인스턴스 메서드

  • 객체가 만들어질 때 heap영역에 생성
  • '인스턴스.메서드이름'으로 호출 가능
  • 클래스, 인스턴스 호출 가능

6.6.4 사용 목적에 따른 클래스와 인스턴스 구분

  1. 모든 인스턴스가 공유를 하는것은 static을 붙여 클래스 메서드로 선언
  2. 클래스 변수는 인스턴스 생성하지 않아도 사용할 수 있다.
  3. 클랫 메서드는 인스턴스 변수를 사용할 수 없다.
  4. 메서드 내에서 인스턴스 변수를 사용하지 않았다면, static을 붙여 클래스 변수로 선언하는 것을 고려

6.6.5 클래스 멤버와 인스턴스

  • 클래스 멤버가 인스턴스 멤버를 참조 및 호출을 하는 경우 인스턴스를 생성해야 한다.