본문 바로가기

Java

Java 선언위치에 따른 변수의 종류 - 클래스 변수, 인스턴스 변수, 지역변수

class Variables {

    // 클래스 영역 시작, 선언만 가능
    int iv; //인스턴스 변수(instance valiable)
    static int cv; //클래스 변수(static변수, 공유변수), cv=static+iv

    // 메서드 영역 시작
    void method() // 메서드 선언
    
    // 메서드 정의
    {
    int lv = 0; //지역변수(local valiable)
    }
    
{

선언 위치 변수의 종류 생성 시기 및 특징
클래스 영역 멤버
변수
인스턴스 변수
(iv: instance variable)
- 인스턴스(객체)가 생성되었을 때 생성
- 인스턴스마다 고유한 상태 유지해야하는 속성에 선언
클래스 변수
(cv: class variable)
- 클래스가 메모리에 올라갈 때 생성
- 인스턴스 변수 앞에 static 붙이면 클래스 변수 선언임
- 인스턴스마다 공통적인 값을 유지해야하는 속성에 사용
- 아무때나 사용 가능
클래스 영역 이외의 영역
(메서드, 생성자, 초기화 블럭 내부)
지역변수
(lv: local variable)
- 변수 선언문이 수행되었을 때 생성
- 선언된 메서드 안에서만 사용 가능
- 메서드 종료 시 자동 제거

1. 인스턴스 변수: 개별 속성
2. 클래스 변수: 공통 속성

class Card {
    String kind;
    int number;
    
    static int width = 100;
    static int height = 250;
}

    card c = new Card(); // 객체 생성

    // 객체 사용

    // iv 사용, 참조변수명.변수명 = 값;
    c.kind = "HEART";
    c.number = 5;

    // cv 사용, 클래스명.변수명 = 값; 
    Card.width = 200; // 또는 c.width = 200; 으로 참조변수명.변수명 형식 가능 but 클래스명 쓰는 것을 권장(iv랑 헷갈릴 수 있음)
    Card.height = 300;
}

'Java' 카테고리의 다른 글

Java return문, 반환값  (0) 2022.10.03
Java 메서드(Method)의 선언, 구현, 호출  (0) 2022.10.02
Java 클래스의 정의  (0) 2022.10.02
Java 객체 배열  (0) 2022.10.02
Java 객체의 생성과 사용  (0) 2022.10.02