☕ JAVA

[Java] 인스턴스 메서드와 static 메서드

별이⭐ 2024. 5. 13. 11:26

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

인스턴스 메서드

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

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

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

static을 언제 붙일까?

  1. 변수에서는 공통 속성에 static을 붙인다.
    • 공통 속성 → static 변수(클래스 변수), 개별 속성 → 인스턴스 변수
  2. 메서드에서는 인스턴스 멤버(인스턴스 변수, 인스턴스 메서드)를 사용하지 않는 메서드에 static을 붙인다.
    • static 메서드는 ‘공통’과 관련 없다! 인스턴스 멤버 유무가 중요하다!

 

메서드 간의 호출과 참조

  1. static 메서드는 인스턴스 변수를 사용할 수 없다.
    • 인스턴스 변수는 객체 생성 후 사용 가능하다.
    • static 메서드는 객체 생성 없이 호출 가능하기 때문에 객체 생성 후 사용이 가능한 인스턴스 변수는 사용할 수 없다.
  2. static 메서드는 인스턴스 메서드를 호출할 수 없다.
    • 인스턴스 메서드는 인스턴스 변수를 사용하는 메서드이다. 즉, 객체 생성 후 객체가 필요한 메서드이다.
    • static 메서드는 항상 호출 가능하기 때문에 객체가 생성되어 있는지 아닌지 모른다. 그래서 static 메서드 내에서 인스턴스 메서드를 호출할 수 없다.