2014년 8월 26일 화요일

[닷넷강좌]C#.NET 프로퍼티, Property, 자동구현프로퍼티 프로퍼티란 스마트필드(Smart Field)라고도 하는데 멤버 필드에 값을 할당하는 방법으로 객체의 속성을 ...

[닷넷강좌]C#.NET 프로퍼티, Property, 자동구현프로퍼티 


프로퍼티란 스마트필드(Smart Field)라고도 하는데 멤버 필드에 값을 할당하는 방법으로 객체의 속성을 나타내는 필드의 특별한 형태이다. 기존의 VB나 VC++ 프로그래머들은 버튼이나 레이블 같은 것에서 색깔이나 크기 등을 설정 하거나 값을 얻어 내는데 한가지 속성을 이용한 다는 것을 알고 있을 것이다. C#에서는 이러한 것을 Language 차원에서 지원하고 있는데 이것이 바로 Property 이다.
프로퍼티는 실제 값을 가지고 있지 않는데 다만 프로퍼티를 이용하여 다른 멤버 변수의 값을 바꿀 수 있고 어떤 연산에 의해 값을 얻어 올 수도 있는 가상의 필드, Set과 Get 형식의 함수를 일반화한 형태로 생각 하면 될 것이다.
경우에 따라서 멤버 변수를 public으로 공개 할 수도 있겠지만 전통적인 객체 지향 프로그래밍에서는 보통 멤버들을 private으로 숨기고 그것에 대한 접근 가능한 메소드를 제공 함으로서 데이터를 보호 한다.


using System;
class Triangle1
{
    private int width; private int height; private int area;
    public int Width
    {
        get { return width; }
        set { width = value; }
    }
    public int Height
    {
        get { return height; }
        set { height = value; }
    }
    public int Area
    {
        get { return width * height / 2; }
    }
}
class Triangle2
{
    //아래는 자동구현 프로퍼티 이다.
    public int Width
    {
        get;
        set;
    }
    public int Height
    {
        get;
        set;
    }
    public int Area
    {
        get { return Width * Height / 2; }
    }
}
public class Test
{
    static void Main()
    {
        Triangle1 A = new Triangle1(); A.Width = 4; A.Height = 3;
        Console.WriteLine("밑변은 {0} ", A.Width); Console.WriteLine("높이는 {0} ", A.Height);
        Console.WriteLine("면적은 {0} ", A.Area);

        Triangle2 AA = new Triangle2(); AA.Width = 4; AA.Height = 3;
        Console.WriteLine("밑변은 {0} ", AA.Width);
        Console.WriteLine("높이는 {0} ", AA.Height);
        Console.WriteLine("면적은 {0} ", AA.Area);
    }
}

댓글 없음:

댓글 쓰기