프로퍼티(Property)
프로퍼티는 클래스 멤버로서, 객체의 필드 값을 읽거나 설정하는 데 사용되는 접근자(Accessor) 메서드의 조합입니다.
객체의 필드에 직접 접근하지 않고, 간접적으로 값을 설정하거나 읽을 수 있도록 합니다.
필드에 대한 접근 제어와 데이터 유효성 검사 등을 수행할 수 있습니다.
프로퍼티는 필드와 마찬가지로 객체의 상태를 나타내는 데이터 역할을 하지만, 외부에서 접근할 때 추가적인 로직을 수행할 수 있습니다.
[접근 제한자] [데이터 타입] 프로퍼티명
{
get
{
// 필드를 반환하거나 다른 로직 수행
}
set
{
// 필드에 값을 설정하거나 다른 로직 수행
}
}
프로퍼티는 get과 set 접근자를 사용하여 값을 읽고 설정하는 동작을 정의합니다.
get 접근자는 프로퍼티의 값을 반환하고, set 접근자는 프로퍼티의 값을 설정합니다.
필요에 따라 get 또는 set 접근자 중 하나를 생략하여 읽기 전용 또는 쓰기 전용 프로퍼티를 정의할 수 있습니다.
오버라이딩(Overriding)
부모 클래스에서 이미 정의된 메서드를 자식 클래스에서 재정의하는 것을 의미합니다.
이는 상속 관계에 있는 클래스 간에 발생하며, 메서드의 이름, 매개변수 및 반환타입이 동일해야 합니다.
오버라이딩을 통해 자식 클래스는 부모 클래스의 메서드를 재정의하여 자신에게 맞는 동작을 구현할 수 있습니다.
TextRpg 개인과제를 하며 작성한 코드를 예로 들면
interface Item
{
string Name { get; set; }
int Atk { get; set; }
int Def { get; set; }
int Price { get; set; }
}//Item
public class Weapon : Item
{
public string Name { get; set; }
public int Atk { get; set; }
public int Def { get; set; }
public int Price { get; set; }
public Weapon(string name, int atk, int def, int price)
{
Name = name;
Atk = atk;
Def = def;
Price = price;
}
public override string ToString()
{
return ($"[E]{Name} | 공격력 +{Atk} | {Price}");
}
}//class Weapon
위와 같이 재정의를 해 리턴 할수 있다.
그리고 오버라이딩(Overriding)과 오버로딩(Overloading)은 객체 지향 프로그래밍에서 다른 개념을 나타내는 두 용어이다.
오버로딩(Overloading)
동일한 메서드 이름을 가지고 있지만, 매개변수의 개수, 타입 또는 순서가 다른 여러 개의 메서드를 정의하는 것을 의미합니다.
오버로딩을 통해 동일한 이름을 가진 메서드를 다양한 매개변수 조합으로 호출할 수 있습니다.
오늘 과제하다가 머리아파서 쓴 일기.
개인과제 하는데 게임 만드는 일 정말 어렵다고 느껴짐 근데
꼴에 한 일~이주 코드좀 썻다고 잘 만들고 싶음
문제 보면서 적당히 뼈대만 계속 만들고 수정함
내용물 채워서 게임 같이 만들어야 하는데
어떤걸 먼저 만들어야 하는지 모르겠음
근데 사실 어려운것도 아니고 걍 모름
머리 속에 구상이 있지만 표현이 안됨
내가 게임에 대해 너무 모르나 게임 좀 더 해봤어야 되나 이런생각 듬
인터페이스를 클래스에 묶어서 사용하는게 이해가 안감
test 파일 열어서 여러가지 실험 하는데 잘 되는지 안되는지 조차 판단이 안됨
여러 문법? 등을 알고는 있지만 적용 및 응용이 안됨
안되는거 다시 예제 찾아보면서 익히는데 이해가 더 안됨
그냥 안되는거 투성임
머리 개 뜨거워짐 진짜 도망치고 싶음
팀 과제 아니니깐 도망가도 괜찮지 않나? 이런 생각 계속 함
근데 개인과제도 못하는데 팀과제 하면 민폐니까 그냥 계속 시도함
구글링 해가면 서 하는데 딴 사람꺼 보면 그냥 벽 ㅈㄴ 느껴지고 한숨만 나옴
내가 만들고 있는건 진짜 걍 똥임 게임 개발 개같이 빡셈
오늘 하루 -끝-
'Today I Learned' 카테고리의 다른 글
[내일배움캠프] C# 문법 종합반 - 알고리즘 (0) | 2023.11.14 |
---|---|
[내일배움캠프] C# 문법 종합반 - 개인 프로젝트 마무리 (0) | 2023.11.13 |
[내일배움캠프] C# 문법 종합반 (인터페이스와 열거형) (0) | 2023.11.09 |
[내일배움캠프] C# 문법 종합반 - 메서드(Methods) (0) | 2023.11.08 |
[내일배움캠프] C# 문법 종합반 - 2주차 숙제풀이 (게임) (0) | 2023.11.07 |