ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • getter setter
    @ 16. 1 ~ 17. 1/C# 2016. 11. 18. 02:49

    위의 코드를 보시면, Field의 값을 얻어오거나 수정할때 GetField, SetField 메소드를 이용하죠? 그런데 C# 에서는 프로퍼티라는 기능을 제공하여 상당히 간단히 구현할 수 있습니다. 프로퍼티에는 get 속성 접근자와, set 접근자가 있습니다. 아래는 프로퍼티 기본 선언 형식입니다.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
        class 클래스명
        {
            데이터타입 필드명;
            접근한정자 데이터타입 프로퍼티명
            {
                get
                {
                    return 필드명;
                }
                set
                {
                    필드명 = value;
                }
            }
        }
    ...



    여기서 보이는 get 속성 접근자는 위에서 구현한 GetField 메소드를 대체합니다. 즉, 속성 값을 반환하는데 사용되며, set 접근자는 SetField 메소드를 대체, 새 값을 할당하는데 사용합니다. 살펴보니, 필드와 메소드 기능을 모두 담당하죠? 한가지 더 알아두실 점이 있다면 굳이 get, set를 다 써야할 필요는 없고 어느 한가지만 사용하여도 문제가 없습니다. get 접근자만을 사용하면 읽어올 수 밖에 없고, set 접근자만을 사용하면 쓸수 밖에 없습니다. get과 set을 둘다 쓰면 읽고 쓸수 있는거죠. 그럼 이제, 예제를 하나 보도록 합시다.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
     
    namespace ConsoleApplication45
    {
        class Student
        {
            private string name;
            private int age;
     
            public string Name
            {
                get
                {
                    return name;
                }
                set
                {
                    if (value.Length > 3)
                        Console.WriteLine("이름은 3자 이상 넘을 수 없습니다.");
                    else
                        name = value;
                }
            }
            public int Age
            {
                get
                {
                    return age;
                }
                set
                {
                    age = value;
                }
            }
        }
     
        class Program
        {
            static void Main(string[] args)
            {
                Student student = new Student();
     
                student.Age = 13;
                student.Name = "로버트 할리";
                student.Name = "김철수";
     
                Console.WriteLine("저의 이름은 " + student.Name + "이고, 나이는 " + student.Age + "살 입니다.");
            }
        }
    }


    '@ 16. 1 ~ 17. 1 > C#' 카테고리의 다른 글

    object 란? boxing unboxing!  (0) 2016.11.18
    참조형식과 값형식 차이, 함수 매개변수(in, out, ref)  (0) 2016.11.18
    C# 시작2  (0) 2016.11.16
    C# 시작  (0) 2016.11.16
    C# 3교시...  (0) 2014.07.27
Designed by Tistory.