클래스 == 데이터 + 함수
클래스 - 1설계도
- 2 데이터 + 함수
- 3 사용자 정의 타입
1.변수 하나의 데이터를 저장할 수 있는 공간
2.배열 같은 종류의 여러 데이터를 하나로 저장할 수 있는 공간
3.구조체 서로 관련된 여러 데이터(종류 관계X)를 하나로 저장할 수 있는 공간
4.클래스 데이터와 함수의 결합(구조체+함수)
사용자 정의 타입 - 원하는 타입을 직접 만들 수 있다.
자바에는 시간타입이 없다.
int hour; (시간)
int minute; (분)
int second; (초)
=> Time t = new Time();
▼ 변수를 선언함
int hour1,hour2,hour3;
int minute1,minute2,minute3;
int second1,second2,second3;
=> Time t1 = new Time();
Time t2 = new Time();
Time t3 = new Time();
▼ 배열을 이용
int hour = new int[3]; // 시간끼리 묶음
int minute = new int[3]; // 분끼리 묶음
int second = new int[3]; // 초끼리 묶음
=> 객체배열
Time[] t = new Time[3];
t[0] = new Tiem();
t[1] = new Tiem();
t[2] = new Tiem();
▼ Time이라는 클래스를 정의함 (사용정의타입)
class Time{
int hour;
int minute;
int second;
}
class Variables { // 클래스 영역 (선언문만 가능)
int iv; //인스턴스 변수
static int cv; //클래스 변수(static변수, 공유변수)
void metnod(){ // 메서드 영역
int lv = 0; //지역변수
}
}
영역 - 1. 클래스영역 -iv,cv(static+iv)
2. 메서드영역 -lv
| 변수의 종류 | 선언위치 | 생성시기 |
|---|---|---|
| 클래스 변수 | 클래스영역 | 클래스가 메모리에 올라갈 때 |
| 인스턴스 변수 | 클래스영역 | 인스턴스가 생성되었을 때 |
| 지역변수 | 클래스 영역 이외의 영역 (메서드,생성자,초기화 블럭 내부) | 변수선언문이 수행되었을 때 |