더북(TheBook)

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#은 처럼 괄호가 없는 속성으로 데이터를 손쉽게 저장하거나 사용할 수 있으며, 이러한 속성은 처럼 읽기 전용 또는 쓰기 전용 속성을 만들 수 있습니다.

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