
Java Field 개념 정리
Field 정의
- 클래스의 상태를 나타내는 변수
- 객체의 데이터, 속성, 상태를 저장
- 클래스 레벨에서 관리되는 멤버 변수
- 자동차 객체의 경우 제작회사, 모델, 색상, 엔진 등의 정보가 Field로 저장됨
Field 선언 방법
- 접근 제어자 (public, private 등)
- 데이터 타입 (int, String 등)
- 변수명
- 클래스 내에서 선언되며 생성자와 메소드 앞뒤 어디서든 가능
public class Car {
public String model = "KIA"; // public 필드
private String color; // private 필드
private int maxSpeed; // private 필드
}
Field 사용 방법
- 클래스 내부에서는 필드명으로 접근
- 클래스 외부에서는 객체명.필드명으로 접근 (ex:
member1.color
) - 지역변수와 인스턴스변수 이름이 같을 경우
this.
를 사용해 인스턴스변수를 구분
public class Car2 {
String model; // 인스턴스 변수
static String lineup; // 클래스 변수
public Car2(String model) {
this.model = model; // this.를 사용해 인스턴스 변수 초기화
}
}
Field 특징
- 접근 제어자
- 필드에 public, private, protected 접근 제어자 사용 가능
- private 필드는 같은 클래스 내에서만 접근 가능
- 정적 필드(Static Fields)
static
키워드로 선언- 모든 인스턴스에서 공유되며 클래스가 메모리에 로드될 때 생성
- 초기화
- 필드는 선언 시 또는 생성자에서 초기화 가능
- 초기화하지 않은 필드는 기본값을 가짐 (ex: int 필드의 기본값은 0, 객체 참조의 기본값은
null
)
Field 종류
- 클래스 변수(cv: class variable)
static
키워드로 선언된 변수- 모든 인스턴스가 공유하는 변수
- 인스턴스 변수(iv: instance variable)
static
키워드 없이 선언된 변수- 각 인스턴스가 고유하게 가지는 변수
- 지역 변수(lv: local variable)
- 메서드 내에서 선언된 모든 변수
- 메서드가 종료되면 소멸
public class Car {
static int numberOfCars; // 클래스 변수
String brand; // 인스턴스 변수
int year;
public Car(String brand, int year) {
this.brand = brand;
this.year = year;
numberOfCars++; // 클래스 변수 증가
}
public void accelerate() {
int acceleration = 10; // 지역 변수
System.out.println("Car is accelerating. Acceleration: " + acceleration);
}
}
- 캡슐화
- 필드를 private으로 선언하고 public 메서드(getter와 setter)를 통해 접근하도록 하여 데이터를 보호.
- 불변성
- 가능하면 필드를 final로 선언하여 변경 불가능하게 만들어 프로그램의 안정성을 높임
- 명확성
- 필드 이름은 저장하고 있는 데이터를 명확하게 표현할 수 있도록 명명.

'Android Development > Java' 카테고리의 다른 글
java의 작동 원리 (1) | 2024.09.13 |
---|---|
Java Method의 개념과 활용 예제 정리 (1) | 2024.09.12 |
Java Class & constructor 개념 정리 (2) | 2024.09.09 |