🌱 오늘의 주제 : 클래스 변수와 인스턴스 변수
🌱 선언위치에 따른 변수의 종류
class Variables
{ // 클래스 영역 시작
int iv; // 인스턴스 변수
static int cv; // 클래스 변수(static변수, 공유변수_
void methid()
{ // 메서드 영역 시작
int lv = 0; // 지역변수
} // 메서드 영역 끝
} // 클래스 영역 끝
변수의 종류 | 선언위치 | 생성시기 |
클래스 변수 (class variable) | 클래스 영역 | 클래스가 메모리에 올라갈 때 |
인스턴스 변수 (instance variable) | 인스턴스가 생성되었을 때 | |
지역변수 (local variable) | 클래스 영역 이외의 영역 (메서드, 생성자, 초기화 블럭 내부) | 변수 선언문이 수행되었을 때 |
- 인스턴스 변수 : 클래스 영역에서 선언, 인스턴스를 생성할 때만 만들어진다.
- 클래스 변수 : 인스턴스 변수 앞에 static 붙인다. 모든 인스턴스가 공통된 저장공간(변수)을 공유 한다. 인스턴스 생성안하고 사용 가능.
- 지역 변수: 메서드 내에서만 사용 가능. 메서드가 종료되면 소멸.
🌱 클래스 변수와 인스턴스 변수
class Card{
String kind; // 인스턴스 변수 (개별 속성)
int number; // 인스턴스 변수 (개별 속성)
static int width = 100; // 클래스 변수 (공통 속성)
static int height = 250; // 클래스 변수 (공통 속성)
}
- 인스턴스 변수는 인스턴스가 생성될 때 마다 생성되므로 각기 다른 값을 유지 가능.
- 클래스 변수는 모든 인스턴스가 하나의 저장공간을 공유하므로, 항상 공통된 값을 갖는다.
'Java' 카테고리의 다른 글
Java - 기본 자료형 vs 객체(참조) 자료형 (0) | 2023.01.13 |
---|---|
Java - 객체의 생성과 사용 (0) | 2023.01.09 |
Java - 2차원 배열 (0) | 2023.01.08 |
Java - 배열 (0) | 2023.01.06 |
임의의 정수만들기 Math.random( ) (0) | 2023.01.02 |