[Java] 객체지향개념 - 변수의 종류, 초기화
변수의 종류
지역 변수(Local Variable)
- 메서드영역에 있는 변수
- 해당 메서드 내에서만 유효
클래스 변수(Class Variable)
- 클래스영역에 있는 변수 (static+iv)
- 클래스가 메모리에 로드될 때 자동생성
- 객체 생성할 필요가 없음
- 속성 중에 공통 속성인 것에 사용 👉 앞에 static 붙임
인스턴스 변수(Instance Variable)
- 클래스영역에 있는 변수
- 클래스 전체에서 사용가능
- 인스턴스가 생성될때 생성(사용가능)
👉 참조변수가 없어지면 가비지컬렉터(GC)에 의해서 사라진다.
- 객체 생성 후 사용가능
- 속성 중에 개별 속성인 것에 사용
변수의 초기화
지역 변수(lv)
- 반드시 사용 전 수동 초기화 해야함
(지역 변수는 메서드에서만 사용되기 때문에 사용주기가 짧아서 선언시 초기화 해주는 것이 좋음!)
멤버 변수(iv, cv)
메소드 밖에서 선언된 변수
- 클래스 변수 : 클래스가 메모리에 로드될 때 1번 초기화 됨
- 인스턴스 변수 : 인스턴스가 생성될 때 마다 초기화 됨
1. 자동 초기화
2. 간단 초기화 (명시적 초기화) : 대입 연산자 사용
- 기본형 변수 :
int door = 4;
- 참조형 변수 :
Car c = new Car();
(참조형 변수가 가질 수 있는 값 = null or 객체주소 이지만, null이 아닌 객체를 생성해서 초기화 해주어야 함)
3. 복잡 초기화
- 인스턴스 변수 : 생성자 사용
- 클래스 변수 : static{ } 사용
참고 📑