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