코드를 짤때, 필드를 public으로 해야할지, private로 해야할지 고민할 때가 있다.


public으로 했다가 잘못된 값이 입력되어 프로그램이 원치않는 동작이 일어날 수도 있다.


그래서 private로 하려고 하니... 해당 클래스에서만 사용이 가능해서 다른 클래스에서 사용하기 어렵다.


은닉화되어있는 private 변수를 사용하는 방법은 겟/셋 함수를 사용하는 것이다.


자바에서도 


private String name;


public String GetName() {

    return name;

}

public void SetName(String name) {

    this.name = name;

}


이렇게 이름을 갖고,


getName() 사용할 경우 name의 값을 얻을 수 있고,


수정하려면 setName() 메소드를 통해 변경을 할 수 있다.


유니티 C#에서는 더욱 간단한 방법을 제공한다.


    class People

    {

        private string name; 

 

        public string Name

        {

            get

            {

                return name;

            }

            set

            {

                if (value.Length > 3)

                    Console.WriteLine("이름은 3자 이상 넘을 수 없습니다.");

                else

                    name = value;

            }

        }


 

이렇게 하면 get은 GetName() 메소드를 대체한다. 즉, 속성 값 name을 반환하는데 사용된다.


 set 접근자는 SetName(String name)을 대체한다.


반드시 다 써야할 필요는 없고 둘 중 한가지만 사용해도 문제가 되지 않는다.


당연히, get접근자 하나만 사용하면 읽어오는 것밖에 할 수가 없고.. set접근자만 사용하면 쓸 수밖에 없다.


 



Posted by sungho88
,