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