Intro

이 글에서는 자바의 멤버 변수, 인스턴스 변수, 클래스 변수에 대해 다룹니다.


멤버 변수

  • 멤버 변수는 클래스에 선언된 변수를 의미하며, 객체의 속성을 나타내는 역할을 한다.
  • 클래스의 영역에 선언되고 메서드 밖에서 정의되는 변수이다.
  • 멤버 변수는 크게 인스턴스 변수클래스 변수로 나뉜다.

인스턴스 변수

  • 인스턴스 변수는 클래스의 객체(인스턴스)가 생성될 때마다 각각의 객체에 독립적으로 생성되는 변수이다.
  • static 키워드 없이 선언된 멤버 변수이다.
  • 각 객체마다 별도의 값을 가지며, 객체가 소멸되면 메모리에서 해제된다.
  • 인스턴스 변수는 주로 객체의 고유한 속성을 저장하는 데 사용된다.

클래스 변수

  • 클래스 변수는 클래스에 속하며, 모든 객체가 공유하는 변수이다.
  • static 키워드를 사용하여 선언된 변수이다.
  • 클래스가 메모리에 로드될 때 한 번만 메모리에 할당되며, 프로그램 종료 시까지 유지된다.
  • 클래스 변수는 모든 객체가 동일한 값을 가져야 하는 속성을 정의할 때 사용된다.

클래스 변수에 static이 필요한 이유

  1. 클래스 차원에서 관리:

    • static 키워드가 없는 변수는 인스턴스 변수로 취급되어 객체마다 독립적으로 존재하게 된다.
    • 클래스 차원에서 공유되는 변수로 설정하려면 반드시 static이 필요하다.
  2. 메모리 관리:

    • 클래스 변수는 클래스 로드 시점에 메모리에 한 번만 생성되어 모든 객체가 공유한다.
    • static이 없는 변수는 객체가 생성될 때마다 새로운 메모리를 할당받으므로 인스턴스 변수로 동작한다.

따라서 클래스 변수를 정의하려면 반드시 static 키워드를 사용해야 한다.

태그:

카테고리:

업데이트:

댓글남기기