• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    해결됨

열거형 질문 있어요.

23.07.27 02:11 작성 조회수 206

0

강의영상 4분쯤에 20번째 줄 보겠습니다.

_tile = new TileType[size, size];

이렇게 해서 tile 변수에 TileType[size,size] 인스턴스(?)를 만들고 넣어 줬는데요. 질문이 여러개 있습니다.

  1. 애초에 TileType은 클래스가 아니라 열거형 형식이라 new TileType[size,size] << 이걸 인스턴스라 불러도 되나요? 아니면 뭐라고 불러야 할까요?(이것만 대답해 주셔도 될 것 같습니다^0^)/)

     

  2. TileType정의할때 TileType이 인덱스를 따로 가지고 있도록 정의하지 않았는데 어떻게 인덱스를 쥐고서 인스턴스를 만들 수 있나요?(해결..)

     

  3. 2번 질문을 곰곰히 생각해보고 검색도 좀 해보니까 string배열 만들듯이 값 타입이든 참조 타입이든 일단 데이터 타입이면 배열 선언이 모두 가능 하더군요. 그래서 열거형도 값 타입의 일종이니까 배열 선언이 가능하다 라는 걸 깨달았습니다. 혹시 다른 분들도 궁금하실 수 있으니 내용은 지우지 않고 남겨 두겠습니다. ^0^)

     

     

     

 

 

답변 1

답변을 작성해보세요.

0

  1. TileType은 열거형이긴 하지만 우리가 한 것은 배열 문법입니다.
    new int[10, 10] 이거와 유사한 것이죠.

  2. 배열은 들고 있는 데이터 타입과 무관하게 만들 수 있습니다.
    인덱스는 데이터 타입에 따라서 만들어지는게 아니라, 배열을 만들면서
    공간 번호 순차적으로 0, 1, 2, ... 인덱스 번호가 붙는 것에 불과합니다.

  3. 참고로 값 타입이 아니라도 배열은 만들 수 있습니다.
    class Player를 이용해 new Player[10, 10]를 하더라도, 배열은 만들어집니다.
    다만 이 경우 배열 내부에 바로 Player 의 데이터가 들어가는 것이 아니라,
    추후 원본 객체를 가리키도록 array[0, 0] = new Player(); 와 같은 형태로 다시
    연결을 해줘야겠죠.

    image

햄쮸맨님의 프로필

햄쮸맨

질문자

2023.07.27

우왕 감사합니당.. 코드를 오래 보다보니 순간적으로 배열이 막 햇갈리고 @_@).. 그랬습니다.. 완전 엉뚱하게 헤맸어요. 덕분에 더 이해가 깊어졌어요!