Unity 개발일지

[C#] 객체와 한정자 실습하기 본문

C#

[C#] 객체와 한정자 실습하기

아머르 2024. 7. 1. 10:55

어느정도 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;

      }

반응형