Ⅰ. 필드
1. 필드 (Field)
- 클래스 내부에 정의된 변수
- 객체의 속성값을 지정할 수 있는 클래스에 포함된 변수
- [비교] 지역변수 (Local variable)는 메소드에 포함된 변수
※ 관례적으로, 클래스 이름을 지을 때는 앞글자를 대문자로 정함
- 필드 → Heap 메모리에 저장
- 지역변수 → Stack 메모리에 저장
// Example
class Car {
String color;
String name; // 이건 필드
}
public class Main {
public static void main(String[] args) {
Car a = new Car();
Car b = new Car();
Car c = new Car();
// int a; 여기에 이건 지역변수
a.name = "소나타";
b.name = "레이";
c.name = "아반떼";
System.out.println(a.name); // 소나타
System.out.println(b.name); // 레이
System.out.println(c.name); // 아반떼
}
}
2. 필드(Field) vs. 지역변수(Local Variable)
- Heap 메모리에 들어가는 필드값은 값을 미입력시 강제 초기화됨
- Stack 메모리에 들어가는 지역변수는 강제 초기화 되지 않음
→ 초기값이 없는 상태로 출력을 시도하면 오류 발생
※ Heap 메모리의 초기값은 빈칸으로 존재할 수 없으며 디폴트 초기값이 강제 설정
// Example1
Class A {
int m;
int n; // 초기화 하지 않음
void work1() {
int k; // 초기화 하지 않음
//System.out.println(k); // 초기값이 없는 상태로 출력을 시도하여 오류 발생
}
}
// Example2
class A {
boolean m1;
int m2;
double m3;
String m4; // 초기화 하지 않음
void printFieldValues() {
System.out.println(m1); // false
System.out.println(m2); // 0
System.out.println(m3); // 0.0
System.out.println(m4); // null
}
}
'Programming Language > Java' 카테고리의 다른 글
클래스 내부 구성요소 - 3. 생성자 (0) | 2022.07.09 |
---|---|
클래스 내부 구성요소 - 2. 메소드 (0) | 2022.07.08 |
클래스의 기본 문법 - 2. 클래스의 활용 (0) | 2022.07.08 |
클래스의 기본 문법 - 1. 클래스 개념 및 기본 구조 (0) | 2022.07.08 |
참조자료형 - 5. String 참조자료형 (0) | 2022.07.07 |