배열은 같은 타입의 테이터들을 고정된 크기로 저장한다.
크기가 변경이 불가능하지만, 고정되어 있는 만큼 빠르게 접근이 가능하다.
반면에 리스트는 크기가 가변적이라 속도는 조금 느리지만 유연하게 대처가 가능하다.
배열 vs 리스트 비교
| 크기 | 고정 | 가변 |
| 선언 | int[] arr = new int[5]; | List<int> list = new List<int>(); |
| 크기 확인 | .Length | .Count |
| 요소 추가/삭제 | 불가능 (새 배열 생성 필요) | Add(), Remove() |
| 접근 속도 | 빠름 | 약간 느림 (내부적으로 배열 관리) |
| 사용 상황 | 크기가 정해져 있고 변경 필요 없는 경우 | 크기가 자주 변하거나 관리가 유연해야 하는 경우 |
using System;
using System.Collections.Generic;
class Program
{
static void Main(string[] args)
{
// ===== 배열 예제 =====
Console.WriteLine("=== 배열(Array) 예제 ===");
string[] fruitsArray = new string[3]; // 크기 고정
fruitsArray[0] = "사과";
fruitsArray[1] = "바나나";
fruitsArray[2] = "체리";
for (int i = 0; i < fruitsArray.Length; i++)
{
Console.WriteLine(fruitsArray[i]);
}
// fruitsArray[3] = "포도"; // ❌ 배열은 크기 초과 불가
// ===== 리스트 예제 =====
Console.WriteLine("\n=== 리스트(List) 예제 ===");
List<string> fruitsList = new List<string>();
fruitsList.Add("사과");
fruitsList.Add("바나나");
fruitsList.Add("체리");
foreach (string fruit in fruitsList)
{
Console.WriteLine(fruit);
}
fruitsList.Add("포도"); // ✅ 리스트는 크기 가변적
fruitsList.Remove("바나나"); // 특정 요소 삭제
Console.WriteLine("\n리스트 수정 후:");
foreach (string fruit in fruitsList)
{
Console.WriteLine(fruit);
}
}
}
클래스는 큰 범위에 있는 설계도라고 볼 수 있습니다.
인스턴스는 그 설계도를 보고 구성된 결과물로서, 클래스를 실제로 만든 객체로 볼 수 있습니다.
클래스와 인스턴스 비교
| 의미 | 객체의 설계도 | 설계도로 만든 실제 객체 |
| 메모리 | 코드(정의)로만 존재 | new 키워드로 메모리에 생성 |
| 역할 | 속성과 기능을 정의 | 정의된 기능을 실제로 사용 |
| 예시 | Player 클래스 | new Player() 로 만든 객체 |
using System;
class Player // 클래스 정의 (설계도)
{
// 속성(필드)
public string name;
public int hp;
// 기능(메서드)
public void Attack()
{
Console.WriteLine($"{name}이(가) 공격합니다!");
}
public void ShowStatus()
{
Console.WriteLine($"[플레이어: {name}, 체력: {hp}]");
}
}
class Program
{
static void Main(string[] args)
{
// 인스턴스 생성
Player player1 = new Player();
player1.name = "전사";
player1.hp = 100;
Player player2 = new Player();
player2.name = "마법사";
player2.hp = 80;
// 메서드 사용
player1.ShowStatus(); // [플레이어: 전사, 체력: 100]
player1.Attack(); // 전사이(가) 공격합니다!
player2.ShowStatus(); // [플레이어: 마법사, 체력: 80]
player2.Attack(); // 마법사이(가) 공격합니다!
}
}
'공부 > 게임 공부' 카테고리의 다른 글
| C#으로 간단한 게임 만들기 (0) | 2025.10.13 |
|---|---|
| Text-RPG 만들어 보기 (1) | 2025.10.02 |
| C# 기초 문법 [ 문자열 처리 ] (0) | 2025.10.01 |
| C# 기초 문법 [ 반복문 ] (0) | 2025.10.01 |
| C# 기초 문법 [ 메서드 ] (0) | 2025.10.01 |