Contents
접기
728x90
1. 프로퍼티(Property)란?
프로퍼티(Property) 는 필드(field)에 간접적으로 접근할 수 있도록 도와주는 일종의 메서드처럼 동작하는 멤버이다.
값을 읽고(get), 설정(set) 하는 역할을 하며, 캡슐화(encapsulation) 를 구현할 때 자주 사용
2. 왜 프로퍼티를 사용할까?
- 외부에서 필드에 직접 접근하지 못하게 막고, 통제된 방식으로 값을 설정하거나 읽게 하기 위해
- 유효성 검사, 로직 처리 등을 중간에 추가할 수 있기 때문
3. 기본 구조
class Person {
private string name; // 필드
public string Name // 프로퍼티
{
get { return name; }
set { name = value; }
}
}
// 사용
Person p = new Person();
p.Name = "도치"; // set 호출
Console.WriteLine(p.Name); // get 호출
4. 자동 구현 프로퍼티 (Auto-Implemented Property)
필드를 따로 만들 필요 없이, 프로퍼티만으로 간단히 구현 가능
public class Product {
public string Name { get; set; }
public int Price { get; set; }
}
5. 읽기 전용/쓰기 전용 프로퍼티
public class User {
public string Nickname { get; private set; } // 외부에서 읽기만 가능
public User(string nickname) {
Nickname = nickname;
}
}
public class Example {
private int _secret;
public int Secret {
private get { return _secret; }
set { _secret = value; } // 외부에서 설정만 가능
}
}
📖 정리
✓ 프로퍼티는 필드 값을 안전하게 읽고/설정할 수 있도록 도와주는 기능
✓ get/set 접근자를 통해 캡슐화를 강화
✓ 자동 구현 프로퍼티를 사용하면 간단한 코드로 클래스 구성 가능
✓ 접근 제한자 조합을 통해 읽기 전용/쓰기 전용 구현 가능
728x90
'C# > 클래스와 구조체' 카테고리의 다른 글
[C#] 다형성(Polymorphism) (0) | 2025.04.17 |
---|---|
[C#] 상속(Inheritance) (0) | 2025.04.17 |
[C#] 객체 (0) | 2025.04.17 |
[C#] 클래스 구조체 차이 (0) | 2025.04.17 |
[C#] 클래스 (0) | 2025.04.17 |