Deff_Dev

[Unity/C#] 프로퍼티를 왜 쓰는가 ? 본문

Unity(유니티)/유니티 공부

[Unity/C#] 프로퍼티를 왜 쓰는가 ?

Deff_a 2024. 4. 23. 22:41

 

객체 지향의 원칙을 지키기 위해 public 접근 제한자의 사용을 지양하고 대신 프로퍼티를 많이 이용한다

 

프로퍼티를 사용하다 문득, 프로퍼티의 Set을 이용해 private 변수의 값을 바꾼다면 무슨 의미가 있는지 의문점이 생겼다.

 

public 선언된 변수에 접근해 바꾸는 것과 프로퍼티를 이용해 private로 선언된 변수에 접근해 바꾸는 것은 둘다 변수 값을 바꾸는 것이다.

 

그럼 도대체 프로퍼티를 왜 쓸까 ?

 

프로퍼티를 왜 쓸까 ?

먼저 이 물음에 답을 하자면,

프로퍼티는 private으로 선언된 변수의 값을 외부에서 접근할 수 있도록 허용하면서도 캡슐화를 지원하는데,

이를 통해 데이터 보호와 클래스의 일관성을 유지할 수 있다.

 

프로퍼티는 get을 통해 변수의 값을 읽을 수 있으며, set을 통해 변수 저장 조건을 지정할 수 있다.


       	private int def;
        private int equipDef;

        public int Def
        {

            get => def + equipDef;
            set
            {
                if (value >= 0)
                {
                    def += value;
                }
            }
        }

 

위 코드에서는 Def 프로퍼티를 사용하여 defequipDef의 합을 읽을 수 있고,

Def 프로퍼티0보다 작은 값을 할당하려고 하면 조건에 따라 def 값을 설정하지 않는다.

 

프로퍼티는 캡슐화, 코드 유지보수, 데이터 조작 등 많은 이점이 있어 사용한다.

 

글을 마치며

프로퍼티의 내부에서 데이터를 처리할 수 있는 부분을 이해하지못해서 생긴 궁금증이었던거 같다.

앞으로는 프로퍼티를 좀 더 잘 사용할 수 있는 방법에 대해 끊임없이 고민해봐야겠다.


틀린 내용이나 수정이 필요한 부분이 있다면 편하게 댓글 달아주세요 !!!