Java 변수의 종류

유광진·2023년 8월 14일
0

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

자바에서 변수는 클래스 변수, 인스턴스 변수, 지역변수 모두 세 종류가 있다.

여기서 변수의 종류를 결정짓는 요소는 변수의 선언 위치 이다.

📢 인스턴스 변수(instance variable)

클래스 영역에 선언되며, 인스턴스(객체)를 생성할 때 만들어진다.

인스턴스 변수(iv)의 값을 읽어 오거나 저장하려면 먼저 인스턴스를 생성해야한다.

인스턴스 마다 고유한 상태를 유지해야하는 속성의 경우, 인스턴스 변수로 선언한다.

📢 클래스 변수(class variable)

클래스 변수를 선언하는 방법은 간단하다. 인스턴스 변수(iv)앞에 static을 붙이기만 하면 된다.

인스턴스마다 독립적인 저장공간을 갖는 인스턴스 변수와는 달리

클래스 변수는 모든 인스턴스가 공통된 저장공간(변수)을 공유하게 된다.
즉, 한 클래스의 모든 인스턴스들이 공통적인 값을 유지해야하는 경우 클래스 변수로 선언한다.

📢 지역변수(local variable)

메서드 내에 선언되어 매서드 내에서만 사용 가능하다.

메서드가 종료되면 소멸되어 사용할 수 없게 된다.

위 내용들을 이해하기 위한 간단한 코드이다.

class Variable {
  int iv; // 인스턴스 변수(instance variable)
  static int cv; // 클래스 변수(class variable)
  
  void method(){
     int lv = 4;   // 지역변수(local variable)  
  }
}

📢 클래스변수와 인스턴스 변수의 개념을 이용한 간단한 코드

class Card{
	String kind;  // 인스턴스 변수
	int age;
	static int width = 100;  // 클래스 변수
	static int height = 200;
}

public class VariableEx {

	public static void main(String[] args) {
		// 클래스 변수(static 변수)는 객체 생성 없이 클래스이름.클래스 변수로 직접 사용 가능하다. 
		System.out.println("Card.width = " + Card.width);
		System.out.println("Card.height = " + Card.height);
		
		// 객체 생성(인스턴스 변수를 사용할 수 있다.)
		Card c1 = new Card();
		c1.kind = "친절한 광진이";
		c1.age = 26;
		
		System.out.println("c1은 " + c1.kind + " " + "그리고 나이는 " + c1.age + "이다.");
	}

}

출력결과.

profile
백엔드 개발자 유광진 입니다.

2개의 댓글

comment-user-thumbnail
2023년 8월 14일

이런 유용한 정보를 나눠주셔서 감사합니다.

1개의 답글