728x90
자바에서 Field, Attribute, Property는 모두 "속성"이라고 번역되지만, 코드에서 각각의 의미가 조금씩 다릅니다. 이번 글에서는 이 차이를 명확하게 설명해보겠습니다.
1. Field(필드)
Field는 클래스 내에서 선언된 멤버 변수를 의미합니다. 일반적으로 클래스 내부에서 데이터를 저장하는 역할을 하며, private으로 선언하는 것이 권장됩니다.
class Person {
private String name; // 필드
private int age; // 필드
}
특징
- 클래스 내부에서 선언된 변수
- 데이터(상태)를 저장하는 역할
- 접근제어자를 사용해 접근 범위를 조절할 수 있음
2. Attribute(어트리뷰트)
Attribute는 Field와 같은 개념으로 사용되지만, 보통 객체의 속성을 설명하는 문맥에서 사용됩니다. 즉, Field를 좀 더 개념적으로 설명할 때 **Attribute(속성)**이라는 표현을 사용합니다.
class Car {
private String brand; // Attribute (Field)
private String model; // Attribute (Field)
}
특징
- Field와 같은 개념이지만 객체의 속성을 설명하는 용어
- 보통 UML 설계나 문서에서 사용됨
3. Property(프로퍼티)
Property는 Getter와 Setter를 통해 접근할 수 있는 속성을 의미합니다. 필드에 직접 접근하는 것이 아니라, 메서드를 통해 값을 설정하거나 가져오는 방식입니다.
class Employee {
private String name; // 필드
// Property (Getter & Setter)
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
특징
- 필드에 직접 접근하지 않고, 메서드를 통해 데이터를 읽거나 씀
- 캡슐화를 지키면서 데이터를 보호하는 역할
- JavaBean에서는 프로퍼티 명명 규칙(getter/setter 사용)을 따름
🔥 정리
개념 설명 예시
Field (필드) | 클래스 내부에서 선언된 변수 | private String name; |
Attribute (어트리뷰트) | 객체의 속성을 설명하는 개념적 용어 (Field와 동일한 의미) | private String brand; |
Property (프로퍼티) | Getter와 Setter를 통해 접근하는 속성 | getName(), setName() |
즉, Field는 실제 코드에서 선언된 변수이며, Attribute는 객체의 속성을 설명할 때 사용되는 용어이고, Property는 Getter와 Setter를 통해 제어하는 속성을 의미합니다.
728x90
'Java Study' 카테고리의 다른 글
Comparator와 Comparable 완전 정복 가이드: 자바 객체 정렬의 핵심 (0) | 2025.02.08 |
---|---|
💻 IntelliJ IDEA 단축키 모음 🖥️ (1) | 2025.02.07 |
람다식 (Lambda Expression) 정리 (2) | 2025.02.04 |
Reflection API in Java (2) | 2025.01.22 |
람다식(Lambda expression) -> 메서드 참조(Method reference) (2) | 2025.01.22 |