내일배움캠프 46일차 TIL - 게터, 세터, 프로퍼티

권태하·2024년 6월 20일
0
post-thumbnail

프로퍼티, 게터, 세터

프로퍼티는 클래스나 구조체 내에서 값을 저장하거나 검색하는 데 사용되며, 게터(Getter)와 세터(Setter)를 통해 필드의 값을 접근하고 수정할 수 있게 해준다.

게터는 프로퍼티의 값을 반환하고, 세터는 새로운 값을 할당하는데 쓰인다.

public class Person
{
    private string name; // 백업 필드

    // Name 프로퍼티
    public string Name
    {
        get { return name; } // 게터: 프로퍼티 값을 읽을 때 실행
        set { name = value; } // 세터: 프로퍼티에 값을 할당할 때 실행
    }
}

이와같이 작성된 Name 프로퍼티를 통해 필드값 name을 세팅하거나 가져올 수 있다.

프로퍼티를 사용할 때의 이점은 다음과 같다.

  1. 캡슐화 : 필드에 직접 접근하는 것을 제한하여 객체의 상태를 보호하고, 필드 값에 대한 유효성 검사나 추가 로직을 삽입할 수 있다.
  2. 유연성 : 내부 구현을 변경하지 않고도 외부 인터페이스를 유지할 수 있어, 클래스의 사용 방법을 일관되게 유지할 수 있다.
  3. 읽기 전용 또는 쓰기 전용 프로퍼티 생성 : 게터 또는 세터만 정의하여 읽기 전용 또는 쓰기 전용 프로퍼티를 만들 수 있다.

조건 달아주기

프로퍼티에 조건을 달아주면 Update를 통해 지속적으로 확인하지 않아도, 간헐적으로 이루어지는 이벤트를 적절한 시점에 발동시켜 줄 수 있다.

public class Status
{
    private int hp;

    public int HP
    {
        get { return hp; } 
        set 
        { 
        	if (value > 0)
            {
            	hp = value;
            }
            else
            {
            	hp = 100;
            }
        }
    }
}

위와 같은 프로퍼티를 통해 hp가 변동될 때 hp value값에 따라 다른 처리를 가지게 세팅 해 줄 수 있는 것이다.

만약 value가 0보다 큰 경우, hp 필드에 이 값을 할당한다. 그렇지 않고 value가 0 이하인 경우, hp 필드를 100으로 설정한다. 이는 HP 프로퍼티에 값을 할당할 때 자동으로 유효성 검사를 수행하고, 특정 조건에 따라 hp 필드의 값을 조정하는 로직을 구현한 것이다.

이러한 방식으로 프로퍼티를 사용하면, 필드에 대한 직접적인 접근을 제한하고, 필드 값에 대한 유효성 검사 또는 추가 로직을 캡슐화하여 클래스의 안정성과 유지보수성을 높일 수 있다.

profile
스터디 로그

0개의 댓글

관련 채용 정보