● 프로퍼티(Property)
- 객체의 필드 값을 읽거나 설정하는데 사용되는 접근자 메서드의 조합
- 객체의 필드에 직접 접근하지 않고, 간접적으로 값을 설정하거나 읽을 수 있도록 함
- 필드에 대한 접근 제어와 데이터 유효성 검사 등을 수행
- 필드 접근을 제어하면, 코드의 안정성과 가독성을 높힘
- get / set 사용
● 예시
class Person
{
private string name;
private int age;
public string Name
{
get { return name; }
set { name = value; }
}
public int Age
{
get { return age; }
set { age = value; }
}
}
Person person = new Person();
person.Name = "John"; // Name 프로퍼티에 값 설정
person.Age = 25; // Age 프로퍼티에 값 설정
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
※ 프로퍼티 접근 제한자 적용 & 유효성 검사 예제
class Person
{
private string name;
private int age;
public string Name
{
get { return name; }
private set { name = value; }
}
public int Age
{
get { return age; }
set
{
if (value >= 0)
age = value;
}
}
}
Person person = new Person();
person.Name = "John"; // 컴파일 오류: Name 프로퍼티의 set 접근자는 private
person.Age = -10; // 유효성 검사에 의해 설정x
// Name과 Age 프로퍼티에 접근하여 값을 출력합니다.
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
● 자동 프로퍼티
- 프로퍼티를 간단하게 정의하고 사용
- 간단한 구문으로 필드의 선언과 접근자 메서드의 구현을 컴파일러가 자동으로 처리
class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
Person person = new Person();
person.Name = "John"; // 값을 설정
person.Age = 25; // 값을 설정
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}"); // 값을 읽어 출력
'C#' 카테고리의 다른 글
오버로딩(overloading)과 오버라이딩(overriding) (0) | 2023.11.08 |
---|---|
가상 메서드 (Virtual), 추상 메서드(Abstract) (2) | 2023.11.08 |
접근 제한자 (public, private, protected) (0) | 2023.11.08 |
객체지향 프로그래밍의 특징 (0) | 2023.11.08 |
배열과 컬렉션(Collection) (0) | 2023.11.07 |