java - 변수의 종류

yunzivv·2025년 3월 14일

JAVA 기초

목록 보기
15/23

변수


변수는 한 개의 데이터를 담을 수 있는 공간이다.
java에서 변수는 어떤 데이터를 담는 지에 따라 기본형 타입 변수와 참조형타입 변수로 구분할 수 있고, 선언 위치에 따라 크게 클래스변수와 인스턴스변수, 지역변수 세가지로 나뉜다.

class Mycls{
	static int a = 0; // 클래스 변수
    int b = 1; // 인스턴스 변수
    
    void printAB(){
    	int c = 2; // 지역변수
    	System.out.println(a); // 출력 : 0
        System.out.println(b); // 출력 : 1
        System.out.println(c); // 출력 : 2
    }
}

1. 클래스 변수

클래스 내부에서 static으로 선언된 변수. 인스턴스가 각자 갖고 있지 않고 모든 인스턴스가 클래스 변수의 저장공간을 공유한다.

1-1. 특징

  • 클래스명.클래스변수 형식으로 사용한다.
  • static 변수, 정적변수라고도 한다.
  • 모든 인스턴스가 공유하는 공공자원이다.
  • 인스턴스 생성과 무관하고 클래스가 로딩될 때 생성된다.
  • static 전용 생성자가 필요하다.

2. 인스턴스 변수

클래스 내부에서 선언되어 각 인스턴스 내부에 존재한다.
클래스 변수와 차이점은 인스턴스를 생성하면 같이 생성되고 인스턴스의 내부에 존재한다는 것이다.

인스턴스는 각자 인스턴스 변수를 가지기 때문에 서로 다른 값을 가질 수 있다. 인스턴스 생성할 때마다 새로운 인스턴스 변수가 생성된다.


3. 지역변수

메서드 내에서 선언된 변수.
메서드가 호출되어 메서드 내부에서 선언될 때 생성되었다가 메서드가 끝나면 지역변수도 같이 사라진다. 메서드 내에서만 사용이 가능하다.


비교 정리


만약 지역변수와 다른 변수의 이름이 같은 경우 메서드 내부에서는 지역변수가 인정된다. 지역변수의 우선순위가 더 높다.
클래스 변수와 인스턴스 변수를 합쳐 멤버 변수라고도 부른다.

클래스변수인스턴스 변수지역변수
선언위치클래스클래스매서드
생성클래스가 로딩 됐을 때인스턴스가 생성 됐을 때변수가 선언 됐을 때
소멸프로그램 종료인스턴스 삭제메서드 종료

참고 자료


변수의 종류

0개의 댓글