남궁성님의 자바의 정석을 기반으로 작성했습니다.
- 클래스의 정의
* 설계도
* 데이터 + 함수
* 사용자 정의 타입
1. 변수 : 하나의 데이터를 저장할 수 있는 공간
2. 배열 : 같은 종류의 여러 데이터를 하나로 저장할 수 있는 공간
3. 구조체 : 서로 관련된 여러 데이터 (종류 관계 X)를 하나로 저장할 수 있는 공간
4. 클래스 : 구조체 + 함수, 즉 서로 관련있는 데이터 변수들과 관련있는 함수들의 묶음
// 비객체지향적인 코드
int hour = 12;
int minute = 25;
int second = 30;
// 객체지향적인 코드
class Time {
int hour;
int minute;
int second;
}
Time t = new Time();
t.hour = 12;
t.minute = 25;
t.second = 30;
- 선언 위치에 따른 변수의 종류
클래스는 클래스 영역 + 메서드 영역이라는 2가지 영역으로 구분되어 있습니다. 클래스 영역에는 IV(Instance Variable, 인스턴스변수)라는 변수, 메서드 영역에는 LV(Local Variable, 지역변수)라는 변수로 이루어져있습니다. CV(Class Variable, 클래스 변수)는 static + IV형태로 사용합니다.
변수의 종류 | 선언 위치 | 생성시기 |
클래스 변수 | 클래스 영역 | 클래스가 메모리에 올라갈 때 |
인스턴스 변수 | 인스턴스가 생성되었을 때 | |
지역 변수 | 메서드 영역(클래스 영역 이외) | 변수 선언문이 수행되었을 때 |
* IV : 인스턴스변수, 클래스 영역 -> IV가 여러개 묶여놓으면 객체
* CV : 클래스변수, 클래스 영역, static + IV
* LV : 지역변수, 메서드 영역
* 클래스 영역 : 선언문만 가능 (변수 선언, 메서드 선언 등)
class Variables { // 클래스 영역 start
int iv ; // 인스턴스 변수
static int cv; // 클래스 변수
void method()
{ // 메서드 영역 start
int lv = 0; // 지역 변수
} // 메서드 영역 end
} // 클래스 영역 end
'Programming > Java' 카테고리의 다른 글
[JAVA] 자바의 메서드(Method) (0) | 2021.10.08 |
---|---|
[JAVA] 클래스 변수와 인스턴스 변수 (0) | 2021.10.08 |
[JAVA] 자바의 객체지향 (0) | 2021.10.08 |
[JAVA] 자바의 정석 (0) | 2021.10.05 |
[JAVA STUDY] 3주차 : JAVA 연산자, 자바 연산자 종류 (0) | 2021.06.07 |