일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Generic
- FSM
- 자료구조
- 효과음
- BGM
- 스파르타내일배움캠프
- 인터페이스
- script
- delegate
- 코루틴
- 프로그래머스
- InputManager
- invokec#events
- soundmanager
- 배열
- ObjectPool
- UI
- 장애물달리기
- 유니티
- 람다식
- unity
- inputsystem
- 스택
- 직렬화
- 메서드
- 유한상태머신
- 비선형자료구조
- skybox
- LINQ
- c#
- Today
- Total
Unity 개발일지
[C#] 프로퍼티(Property)란? 본문
유니티로 개발을하다가 자료를 찾다보면 프로퍼티 라는 용어를 자주 보게된다.
그렇다면 프로퍼티란 무엇일까?
간단하게 말하면 객체의 필드값들을 은닉화를 해서 외부에서는 접근할 수 없는데
외부에서 접근할 수 있도록 매개역할을 해주는 것이 프로퍼티이다.
사용예시
[접근 제한자] [데이터 타입] 프로퍼티명
{
get
{
// 필드를 반환하거나 다른 로직 수행
}
set
{
// 필드에 값을 설정하거나 다른 로직 수행
}
}
먼저 Person이라는 class를 정의한다.
필드값(name과 age)은 private로 외부에서는 직접 사용할 수 없다.
그리고 public으로 Name 메서드를 정의하는데
get 접근자로 private상태인 name을 return 해주고,
set 접근자로 외부에서 value를 지정하여 name에 할당할 수 있다.
둘 다 사용할 필요는 없으며 한가지만 사용해도 된다.
set해주는 방법은 간단하다.
Main함수에서 해당 객체를 만들어주고 .을 입력하여 메서드를 찾아 입력해주면 된다.
.을 입력 시 사용할 수 있는 메서드를 볼 수 있다.
자동구현 프로퍼티(Auto-Implemented Properties)
위의 Person 클래스를 자동구현 프로퍼티를 이용하면 더 간단하게 구현할 수 있다.
자동구현 프로퍼티는 필드에 기본적인 Get, Set 작업만을 할 때 사용하며 컴파일러가 자동으로 필드를 생성해준다.
이때 생성되는 필드는 public이며 set 접근자 앞에 private를 추가하여 값을 변경할 수 없도록 구현할 수도 있다.
이렇게 정의할 경우 Main에서 person.Name에는 접근할 수 없다.(set값을 설정할 수 없음)
프로퍼티를 선언과 동시에 값을 초기화하는 것도 가능하다.
Name의 "Jhon"은 프로퍼티 생성 시 초기화 한 것이다.
'C#' 카테고리의 다른 글
[C#] 정적(Static) 필드와 메서드 (2) | 2024.04.26 |
---|---|
[C#] 무한루프를 이용해 잘못된 입력을 받았을 때 메세지 띄우기 (0) | 2024.04.25 |
[C#] 인터페이스(Interface)와 추상(Abstract)클래스 (0) | 2024.04.24 |
[C#] 백준 문제 2588번 곱셈 (0) | 2024.04.22 |
[C#] 백준 문제 1000번 A+B (2) | 2024.04.19 |