카테고리 없음
C#의 클래스, 객체, 생성자, 접근제한자, static 한정자
이황충
2024. 7. 1. 19:49
유니티 게임개발캠프 TIL 47일차
클래스와 객체
래스:
- 클래스는 객체를 생성하기 위한 템플릿(청사진)입니다. 클래스는 데이터(속성)와 행동(메서드)를 정의하여 객체의 구조와 행동을 규정합니다.
public class Car
{
public string Make { get; set; }
public string Model { get; set; }
public int Year { get; set; }
public void DisplayInfo()
{
Console.WriteLine($"Car Make: {Make}, Model: {Model}, Year: {Year}");
}
}
객체:
- 객체는 클래스에서 정의한 내용을 기반으로 생성된 인스턴스입니다. 객체는 클래스의 속성과 메서드를 포함하는 실체입니다.
class Program
{
static void Main(string[] args)
{
Car car1 = new Car();
car1.Make = "Genesis";
car1.Model = "G70";
car1.Year = 2020;
car1.DisplayInfo();
}
}
생성자
- 생성자(Constructor):
- 생성자는 클래스의 인스턴스가 생성될 때 호출되는 특별한 메서드입니다. 객체의 초기 상태를 설정하는 역할을 합니다.
- 생성자의 이름은 클래스의 이름과 동일하고, 반환 타입을 가지지 않습니다.
- 생성자는 매개변수를 가질 수 있으며, 이를 통해 객체의 속성을 초기화할 수 있습니다.
- 클래스는 여러 개의 오버로드된 생성자를 가질 수 있습니다.
public class Car
{
public string Make { get; set; }
public string Model { get; set; }
public int Year { get; set; }
// 생성자
public Car(string make, string model, int year)
{
Make = make;
Model = model;
Year = year;
}
}
class Program
{
static void Main(string[] args)
{
Car car1 = new Car("Genesis", "G70", 2020);
car1.DisplayInfo();
}
}
접근제한자
- 접근제한자(Access Modifiers):
- 접근제한자는 클래스, 메서드, 변수 등에 대한 접근 권한을 제어하는 키워드입니다.
- public:
- 모든 클래스와 객체에서 접근이 가능합니다.
- private:
- 같은 클래스 내에서만 접근이 가능합니다.
- protected:
- 같은 클래스이거나 상속받은 클래스에서 접근이 가능합니다.
- internal:
- 같은 어셈블리(프로젝트) 내에서만 접근이 가능합니다.
static 한정자
- static 한정자(Static Modifier):
- static 한정자는 클래스의 멤버(변수, 메서드)에 적용되어, 해당 멤버가 특정 클래스의 인스턴스에 속하지 않고 클래스 자체에 속하도록 합니다.
- static 변수는 클래스의 모든 인스턴스가 공유하며, 클래스가 처음 로드될 때 한 번만 메모리에 할당됩니다.
-
public static int TotalCars;
- static 메서드는 클래스 인스턴스를 생성하지 않고 클래스 이름을 통해 직접 호출할 수 있습니다.
-
public static void ShowTotalCars() { Console.WriteLine($"Total Cars: {TotalCars}"); }
- static 클래스는 인스턴스를 생성할 수 없으며, 모든 멤버가 static이어야 합니다.
-
public static class Utilities { public static void PrintMessage(string message) { Console.WriteLine(message); } }
- 예제:
-
public class Item { private static int itemCount = 0; public string Name { get; set; } public Item(string name) { Name = name; itemCount++; } public static int GetItemCount() { return itemCount; } } class Program { static void Main(string[] args) { Item item1 = new Item("Item1"); Item item2 = new Item("Item2"); Console.WriteLine("Total Items Created: " + Item.GetItemCount()); } }