38.6 속성의 여러 가지 유형 살펴보기

    이번에는 속성의 여러 가지 사용법을 살펴보겠습니다. 다음 내용을 입력한 후 실행해 보세요.

    속성의 여러 가지 유형: PropertyAll.cs

    using System;
    
    namespace PropertyAll
    {
        public class Car
        {
            private string color; //필드
    
            public Car()          //생성자
            {
                this.color = "Black";
            }
    
            //메서드로 외부에 공개
            public void SetColor(string color)
            {
                this.color = color; //this.필드 = 매개변수;
            }
    
            public string GetColor()
            {
                return color;
            }
    
            //속성
            public string Color
            {
                get
                {
                    return color;
                }
                set
                {
                    color = value;
                }
            }
    
            //읽기 전용 속성
            public string Make
            {
                get
                {
                    return "한국자동차";
                }
            }
    
            //쓰기 전용 속성
            private string _Type;
            public string Type
            {
                set
                {
                    _Type = value;
                }
            }
    
            //축약형 속성
            public string Name { get; set; }
        }
    
        class PropertyAll
        {
            static void Main()
            {
                //① Set과 Get 메서드 사용
                Car car1 = new Car();
                car1.SetColor("Red");
                Console.WriteLine(car1.GetColor()); //Red
    
                //② 속성을 사용
                Car whiteCar = new Car();
                whiteCar.Color = "White";           //set {}
                Console.WriteLine(whiteCar.Color);  //get {}
    
                //③ 읽기 전용 속성
                Car k = new Car();
                //k.Make = ""; ////이 코드는 에러
                Console.WriteLine(k.Make);          //읽기만 가능
    
                //④ 쓰기 전용 속성
                Car car = new Car();
                car.Type = "중형";                  //쓰기만 가능
                //Console.WriteLine(car.Type); ////이 코드는 에러: 읽기는 불가
    
                //⑤ 축약형 속성
                Car myCar = new Car();
                myCar.Name = "좋은차";
                Console.WriteLine(myCar.Name);
            }
        }
    }

    실행 결과

    Red
    White
    한국자동차
    좋은차

    속성 개념이 없는 프로그래밍 언어는 처럼 Set 또는 Get으로 시작하는 메서드로 클래스의 필드 값을 설정하거나 가져다 사용했습니다. C#은 처럼 괄호가 없는 속성으로 데이터를 손쉽게 저장하거나 사용할 수 있으며, 이러한 속성은 처럼 읽기 전용 또는 쓰기 전용 속성을 만들 수 있습니다.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.