Field
- 클래스에서 필드는 클래스에 포함된 변수를 의미함
- 클래스 내부에서 필드는 선언된 위치에 따라 클래스 변수, 인스턴스 변수, 지역 변수로 구분됨
클래스 변수는 static을 사용해 선언하며, 클래스 메모리에 올라갈때 생성되고 프로그램이 종료될때까지 메모리에 저장됨
인스턴스 변수는 해당 인스턴스가 생성될때 생성되며, 인스턴스가 사라질때 메모리에서 사라짐
지역 변수는 메서드의 생명주기에 맞게 변수가 생성되고 소멸됨
class Car {
static int modelOutput;
String modelName;
void method() {
int something = 10;
}
}
Method
- 클래스에서 매소드는 어떠한 작업을 수행하기 위한 명령문의 집합을 의미함
- static 키워드 여부에 따라 클래스 메소드, 인스턴스 메서드로 나뉨
필드와 동일하게 클래스 메서드만 인스턴스 생성없이 바로 사용 가능
class Car {
boolean door;
void openDoor() {
door = true;
}
static void toggleDoor(boolean d) {
return !d;
}
}
필드의 초기화
- 자바에서 특정한 값으로 필드를 초기화 하기 위해서는 사전에 초기화 작업을 걸쳐야 함
- 우선 필드 선언시 초기화를 진행하는 명시적 초기화 방식이 있음
class Field {
static int classVar = 10;
int instanceVar = 20;
}
- 또한 자바의 생성자를 사용해 클래스 멤버를 초기화시키는 생성자를 이용한 초기화 방식이 있음
- 필요하다면 클래스 내부에 중괄호를 사용해 변수를 초기화시킬 수 있음
class InitBlock {
static int classVar;
int instanceVar;
static {
classVar = 10;
}
{
this.instanceVar = 10;
}
}
- 변수들의 초기화 순서는 기본값 -> 명시적 초기화 -> 초기화 블록 -> (인스턴스 변수의 경우) 생성자 순서임
출처:
http://www.tcpschool.com/java/java_member_field