[C#] 프로퍼티(Property)

접근제한자를 public으로 하게 되면 아무대서나 접근할수 있다는 단점이 있다.

그렇다고 private으로 하기에는 접근하기가 어렵다.

 

이럴때 사용하는것이 바로 프로퍼티(Property)이다.

 

프로퍼티란 public처럼 내부 필드에 쉽게 접근이 가능한 멤버다.

get으로 외부에 데이터를 출력하고

set으로 내부에 데이터를 입력한다.

 

    private int number;

    public int Number
    {
        get { return number; }

        set
        {
            number = value;
        }
    }

프로퍼티의 형식은 위와 같다.

 

get에서는 속성 값을 반환하며 getter라 부른다.

set에서는 새 값을 할당해주며 setter라 부른다.

 

그렇다면 프로퍼티는 왜 사용할까?

1. 캡슐화

캡슐화란 필드를 private으로 선언해 외부에서 접근을 못하게 하고

메서드를 이용하여 내부의 필드에 접근을 할 수 있는것을 말한다.

 

프로퍼티는 멤버 변수에 대한 접근을 제어하므로 캡슐화를 가능하게 한다.

따라서 객체의 은닉성을 높인다.

2. Validation 및 계산

프로퍼티를 사용하면 setter에서 값에 조건을 추가하거나 계산할 수 있다.

    private int number;

    public int Number
    {
        get { return number; }

        set
        {
            if (value > 0)
            {
                number = value;
            }
            else
            {
                number = 0;
            }
        }
    }

위와 같이 만약 값이 0보다 크지 않다면 값을 0으로 고정해준다.

3. 코드 가독성 증가

보통은 Get메서드와 Set메서드를 이용해 캡슐화를 하지만 프로퍼티를 사용하면

Get메서드와 Set메서드를 따로 구현하지 않아도 돼 코드가 간결해진다.

'C#' 카테고리의 다른 글

[C#] 델리게이트  (0) 2024.07.12
[C#] 추상, 가상 클래스  (4) 2024.07.01
[C#] 객체지향의 상속  (0) 2024.07.01
[C#] 접근제한자  (0) 2024.06.26
[C#] 객체지향에 대하여  (3) 2024.06.25