> For the complete documentation index, see [llms.txt](https://nbcamp.gitbook.io/java-handbook/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://nbcamp.gitbook.io/java-handbook/part-05./undefined-3.md).

# 변수의 종류

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

![](https://1460556410-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3hxjcsx6VFJEpkIV3dzZ%2Fuploads%2FNONLR3jQHhbJ0p896ZCS%2Fimage.png?alt=media\&token=ce68dbf0-e2e8-42bb-9d64-534bfbcfaf9b)

> ### 클래스 영역 : 클래스 변수
>
> * 클래스가 메모리에 올라갈 때 생성됩니다.
> * 객체 생성을 하지 않아도 생성되고 언제든지 사용 가능합니다.
> * 접근 방법 : <mark style="color:blue;">클래스명.클래스변수명</mark>
>
> ### 클래스 영역 : 인스턴스 변수&#x20;
>
> * 객체가 생성될 때 인스턴스 변수가 생성됩니다.
> * 접근 방법 : <mark style="color:blue;">참조변수명.인스턴스변수명</mark>
>
> ### 메서드 영역 : 지역 변수
>
> * 메서드가 호출 되서 실행될 때 생성됩니다.
> * 메서드가 종료되면 자동으로 제거됩니다.

* 아래 예제코드로 학습해 보겠습니다.

{% code lineNumbers="true" %}

```java
class Obj4_1 {
    int iv;        // 인스턴스 변수
    static int cv; // 클래스 변수(static 변수, 공유 변수)

    void method() {
        int lv;
        lv = 30;
        // 지역변수는 자동으로 초기화가 되지 않기 때문에 사용하려면 반드시 초기화 필요
        System.out.println("lv 지역 변수 = " + lv);
    }
}


class Obj4_1Main {
    public static void main(String[] args) {

        // 클래스 변수 접근 및 사용
        // 접근방법 : 클래스명.클래스변수이름
        Obj4_1.cv = 10;
        System.out.println("ObjVar.cv 클래스 변수 = " + Obj4_1.cv);

        // 인스턴스 변수 생성 및 사용
        // Obj4_1.iv = 20; // Error, 인스턴스를 통해서만 생성 및 사용 가능
        Obj4_1 objVar = new Obj4_1();
        objVar.iv = 20;
        System.out.println("objVar.iv 인스턴스 변수 = " + objVar.iv);

        // 지역 변수 생성 및 사용
        // objVar.lv // Error, 인스턴스로 지역 변수 바로 접근 불가능
        objVar.method(); // 메서드 호출 시 지역 변수 생성
        // 메서드 종료시 지역 변수 삭제
    }
}
```

{% endcode %}

{% hint style="warning" %} <mark style="color:red;">필수 시청 영상</mark>

[클래스 변수 와 인스턴스 변수](https://www.youtube.com/watch?v=frKHrnsCoS4\&list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp\&index=58)
{% endhint %}

{% hint style="info" %}
Ref. Java의 정석 기초편 Chapter6(11, 12, 13)

Ref. [변수 선언위치에 따른 종류](https://www.youtube.com/watch?v=qA0D-nAcAvQ\&list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp\&index=57)
{% endhint %}
