Java Study

Java에서 Field, Attribute, Property의 차이

초코너무조코 2025. 2. 11. 11:32
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