Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 유니티
- 유니티공부
- 오블완
- C#문법
- c#문제
- c# c#프로그래머스
- 스파르타
- 유니티3dui
- 유니티서바이벌게임만들기
- 스파르타코딩클럽
- 티스토리챌린지
- Unity
- c# 백준
- 시샵
- C++문법
- 시샵문법
- unity3d
- c#프로그래머스기초문법
- 유니티상호작용
- c#코테
- unity게임만들기
- unity3dservival
- c#기본문법
- c#기초문법
- c#코딩기초트레이닝
- unity공부
- unity게임
- unity3d게임만들기
- 유니티게임만들기
- c#
Archives
- Today
- Total
나 개발자 진짜 되냐?
get set은 왜 쓰는 걸까? 제대로 이해하고 가자. 본문
get과 set을 왜 쓰는지 몰랐던 그대는
이 글을 보시오
나도 볼것이니...
Get / Set
이 친구들은
이것은 함수라고 표현하지 않고 변수라고도 표현하지 않고..
속성(Property)이라고 표현한다.
그들의 역할은 명확하게 구분되어 있다.
get은 값을 읽을 때 동작하며
set은 값을 변경할 때 동작한다.
속성을 쓰는 이유는
제어 로직을 넣을 수 있기 때문이다.
단순히 값만 저장하는 게 아니라 값이 바뀔 때 추가 작업이 가능해진다.
쓰는 이유는 말 그대로 제어하기 위해서..!
예를 들어보자
public int hp;
속성 없이 일반 변수로 작성되었다.
그러다 보니.. 누구든 이 hp를 10으로든 200으로든 9999든 바꿀 수 있는데
하지만 -9999는 안되잖아!!!! 0 밑으로 떨어지면 죽으니까
근데 이렇게 설정해 두면 버그가 생길 확률이 생긴다.
그래서 속성으로 바꾸게 되면..
private int _hp;
public int HP
{
get { return _hp; } // 값을 읽을 때
set // 값을 설정할 때
{
if (value < 0) value = 0; // 음수 못 들어오게!
_hp = value;
}
}
이렇게 해주면 음수는 절대 들어갈 수 없게 된다.
정확히 말하면 -100이든 -9999든 0으로 바뀐다.
나는 의문점이 생겼다..
아니 그럼 그냥 if문 걸면 되는 거 아니야?
if 어쩌고 해서 음수면 막는 거
쓰면 될 거 같지만..
이건 생각보다 일일이 해주어야 하고..
다른 코드에서 실수로 바꿔버릴 수도 있다고 한다.
get / set을 써주면 “자동으로 if문이 실행되게 만드는 장치” 여서
그냥... get / set을 쓰는 게 좋다고 한다 ㅎㅎㅋㅋ
오케 제어장치! get / set 확인
'C# 을 맛보았어요! > 문법정리를 해보았어요!' 카테고리의 다른 글
인터페이스란? (0) | 2024.10.28 |
---|---|
객체, 클래스, 인스턴스 차이는? (0) | 2024.10.15 |
[ C# 기본 문법 26 ] StringBuilder 너.. 좋은 친구구나? (0) | 2024.10.08 |
[ C# 기본 문법 25 ] init 이란? (1) | 2024.10.07 |
[ C# 기본 문법 24 ] 직렬화 Serialization & 역직렬화 Deserialization (4) | 2024.10.02 |