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 |