C#의 속성과 캡슐화
이 레슨에서는 검사 기능이 있는 속성으로 객체를 잘못된 값으로부터 보호합니다.
소개
캡슐화는 데이터를 객체 안에 두고 통제된 방식으로만 바꿀 수 있게 하는 것입니다. C#의 속성을 쓰면 값을 대입하는 순간에 검사를 넣으면서도, 사용하는 코드는 일반 변수처럼 간단한 문법을 쓸 수 있습니다.
필드 _price는 private이므로 바깥에서 직접 접근할 수 없습니다. Price 속성은 이 필드를 통해 읽고 쓰며, set 부분은 0 이상인 값만 받고 가격이 음수이면 ArgumentOutOfRangeException을 던집니다. 그래서 Product의 가격은 절대 잘못되지 않으며, 19.95라는 값은 정상적으로 출력됩니다.
실행 가능한 C# 예제
C#
Program.cs
using System;
class Product
{
private decimal _price;
public decimal Price
{
get => _price;
set => _price = value >= 0 ? value : throw new ArgumentOutOfRangeException();
}
}
class Program
{
static void Main()
{
var product = new Product { Price = 19.95m };
Console.WriteLine(product.Price);
}
}
19.95디버거로 연습하기
중요한 대입이나 조건에 중단점을 두고 Debug를 눌러 다음 줄로 넘어가기 전에 지역 변수 값을 확인하세요.
챌린지로 연습하기
이 레슨에서 배운 내용으로 실제 문제를 풀어 보세요. 모든 챌린지는 브라우저에서 실행되며 즉시 테스트와 AI 리뷰를 받을 수 있습니다.
모든 챌린지