728x90
반응형
SMALL
변수의 초기화
수동 / 자동 초기화
- 지역 변수는 수동으로 초기화 해야합니다.
- 지역 변수가 동작하는 스택 메모리는 재사용이 빈번하기 때문에 매번 초기화 해주면 성능이 떨어집니다.
- 그래서 그냥 해당 메모리에 있는 값으로 덮어 씌웁니다.
- 근데 해당 주소에 어떠한 값이 있는지 모르기 때문에 Java는 개발자에게 수동으로 초기화 하라고 요구합니다.
- C 언어에서는 이를 garbage value 라 부릅니다.(C언어와 Java의 차이를 비교하면 이해가 쉽습니다.)
- 멤버변수(인스턴스 변수, 클래스 변수)는 자동으로 초기화 됩니다.
멤버 변수의 초기화
- 클래스 변수 : 클래스가 처음 로딩될 때 단 한번만 초기화 됩니다.
- 인스턴스 변수 : 인스턴스가 생성될 때 마다 초기화 됩니다.
초기화 방법
명시적 초기화(=)
class Tv11_1 {
boolean power = false; // 기본형 변수의 초기화
int channel = 1; // 기본형 변수의 초기화
Audio audi = new Audio(); // 참조형 변수의 초기화, 참조형은 객체주소 or null 로 초기화!!
// 참조형의 기본값은 null 입니다!!
...
}
초기화 블럭
class Tv11_2 {
static boolean power;
int channel;
// 클래스 초기화 블럭
static
{
power = false;
}
// 인스턴스 초기화 블럭
{
channel = 1;
}
...
}
생성자 초기화
class Tv11_3 {
// 속성 : 변수 선언
boolean power; // 전원상태
int channel; // 채널
String color; // 색깔
long price; // 가격
// 위 속성에서 필수로 초기값이 필요한 값들을 초기화 해주는 기본 생성자
Tv11_3() {
this.power = false;
this.channel = 1;
}
...
}
728x90
반응형
LIST