속성(Property)과 필드(Field)의 차이

    C#을 공부하면서 속성이라는 개념이 헷갈리기 시작했다.

    JAVA에서는 속성을 getter와 setter로 정의해서 멤버변수를 은닉화하는 동시에 필드를 사용할 수 있게 하는, 필드를 다루기 위해 메서드를 정의하는 방법이라고 이해하고 넘어갔다. 반면, C#에서는(C#과 마이크로소프트가 제시하는 코딩스타일에 따르면) 속성(Property)란 클래스의 구성요소로써 Public Data Member처럼 사용될 수 있지만, '접근자'라는 특수한 메서드라는 것이다. 마이크로소프트가 제시하는 속성은 무엇이고 왜 써야되는 걸까? 이번 시간에는 속성과 필드에 대해 알아본다.

    A property is a member that provides a flexible mechanism to read, write, or compute the value of a private field. Properties can be used as if they're public data members, but they're special methods called accessors. This feature enables data to be accessed easily and still helps promote the safety and flexibility of methods. - Microsoft Programming Guide

    마이크로소프트의 설명에 따르면, 속성이란 private한 필드의 값을 유연하게 읽고 쓰고, 계산할 수 있도록 만든 멤버이다. 그렇다고 필드는 아니고 접근자(accessor)라는 특수한  메서드에 속하며, JAVA에서 getter와 setter 메서드를 정의해서 사용하는 기존의 '불편한 방식'을 개선시킨 것 쯤이라고 생각하면 좋겠다. 따라서 기본적으로 데이터를 은닉하는 동시에 데이터에 대한 접근을 손쉽게 할 수 있고 C#에서는 메서드를 안전하고 유연한 방법으로 사용할 수 있게 해준다.

     

     

    '개발' 카테고리의 다른 글

    [모바일] Context 선택  (0) 2022.11.07

    댓글