☕ JAVA

[Java] 클래스 변수, 인스턴스 변수, 지역 변수

별이⭐ 2024. 5. 11. 01:27

선언 위치에 따른 변수의 종류

  • 선언 위치
    1. 클래스 영역 - iv(instace variable), cv(class variable)
    2. 메서드 영역 - lv(local variable)
  • 변수의 종류
    • 클래스 변수는 객체 생성 필요 X
    • 인스턴스 변수는 객체가 생성되어야 사용할 수 있으므로 객체 생성 필요 O
      변수의 종류 선언 위치 생성시기
      클래스 변수(cv) 클래스 영역 클래스가 메모리에 올라갈 때 (클래스가 필요할 때)
      인스턴스 변수(iv) 클래스 영역 객체(인스턴스)가 생성되었을 때
      지역 변수(lv) 클래스 영역 외의 영역 (메서드, 생성자, 초기화 블럭 내부) 변수 선언문이 수행되었을 때
  • 객체 = iv들을 묶어놓은 것 (변수 여러개)
  • 만약 포커 카드가 있다면…
    • 포커 카드: Card 객체
    • 속성: 무늬, 숫자, 폭, 높이
      • 속성의 무늬와 숫자는 객체마다 다르게 유지되어야 하는 개별값(iv)
      • 폭과 높이는 모든 객체 공통값(cv)
    • 개별 속성은 인스턴스 변수로, 공통 속성은 클래스 변수로 선언