일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- unity
- 직렬화
- 인터페이스
- 유니티
- ObjectPool
- 스택
- LINQ
- 람다식
- 유한상태머신
- InputManager
- 효과음
- BGM
- inputsystem
- script
- 프로그래머스
- 배열
- 자료구조
- 코루틴
- UI
- delegate
- soundmanager
- 장애물달리기
- c#
- 메서드
- skybox
- invokec#events
- 비선형자료구조
- 스파르타내일배움캠프
- FSM
- Generic
- Today
- Total
Unity 개발일지
[C#] 객체와 한정자 실습하기 본문
어느정도 C#과 유니티에 익숙해진 것 같다.
배운 문법을 잘 사용하는 것도 좋지만, 정확하게 알고 사용해보자.
[연습문제]
1. 위 예제 코드에서 Car는 무엇을 나타내나요? car1과 car2는 무엇을 나타내나요?
Car는 클래스를 나타내고, car1과 car2는 Car의 인스턴스, 즉 객체를 뜻한다.
2. 위 코드에서 Car 클래스에 정의된 메서드를 호출할 때 car1과 car2를 사용해야 하는 이유는 무엇일까요?
car1과 car2는 Car 클래스의 인스턴스로, 인스턴스 메서드는 객체를 통해서만 호출할 수 있기 때문이다.
3. 위 코드에 어떤 메서드를 추가하고 아래와 같이 사용했습니다.
SomeMethod에는 static 한정자가 붙어있을까요? 그 이유는 무엇인가요?
SomeMethod에는 static한정자가 붙어있지 않다. 인스턴스 메서드로 호출되기 때문이다.
static 메서드는 클래스명으로 호출되며, 객체를 필요로 하지 않는다.
[이론문제]
1. 객체란 무엇인가요? 클래스와 어떤 연관이 있나요?
객체는 클래스의 인스턴스로, 클래스를 기반으로 생성된 실체이다.
클래스는 객체를 만들기 위한 설계도이다.
2. 생성자에 대해 간단히 설명해주세요.
생성자는 클래스의 인스턴스를 생성할 때 호출되는 특수한 메서드로, 객체 초기화를 담당한다.
3. 접근제한자란 무엇이며, 각각 어떤 차이가 있는지 비교해서 설명해주세요.
접근제한자는 클래스, 메서드, 변수 등의 접근 범위를 제한하는 키워드이다.
public : 모든 코드에서 접근 가능
private : 해당 클래스 내에서만 접근 가능
protected : 해당 클래스 및 상속받은 클래스에서 접근가능
internal : 같은 어셈블리 내에서 접근 가능
4. static 한정자에 대해 설명해주세요.
static 한정자는 클래스의 인스턴스가 아닌 클래스 자체에 속하는 맴버를 정의한다.
static 멤버는 클래스명으로 접근하며, 객체를 생성하지 않고도 사용할 수 있다.
[보너스 문제]
생성자를 통해 아이템을 생성할 때마다, 지금까지 생성된 아이템의 개수를 따로 저장하는 변수를 Item에 만들고 싶습니다.
어떤 코드를 추가로 작성해야 할까요? (Item : 아이템의 정보를 저장하는 클래스)
1. Item 클래스에 생성된 아이템 개수를 저장하는 정적 필드를 선언한다.
>> private static int itemCount = 0;
2. 생성자에서 새로운 인스턴스가 생성될 때마다 이 정적 필드를 증가시킨다.
>> public Item(string name)
{
this.Name = name;
itemCount++;
}
3. 현재까지 생셩된 아이템 개수를 반환하는 정적 메서드를 구현한다.
>> public static int GetItemCount()
{
return itemCount;
}
'C#' 카테고리의 다른 글
[C#] 콜백, delegate, event 실습하기 (0) | 2024.07.03 |
---|---|
[C#] 객체지향 프로그래밍 실습하기 (0) | 2024.07.02 |
[C#] Generic (0) | 2024.06.28 |
[C#] 프로그래머스 머쓱이보다 키 큰 사람 (0) | 2024.05.07 |
[C#] Newtonsoft.Json 을 이용하여 콘솔창에서 Save/Load 기능 만들기 (1) | 2024.05.02 |