1. 객체 지향 프로그래밍 (OOP)
- 정의: 코드 내의 모든 것을 객체로 표현하는 프로그래밍 패러다임.
- 객체(Object): 세상의 모든 것을 지칭하며, 속성과 기능으로 이루어집니다.
- 속성: 데이터를 통해 표현 (예: 다리, 귀).
- 기능: 메소드를 통해 표현 (예: 뛰기, 듣기).
2. 클래스(Class)
- 정의: 객체를 생성하기 위한 청사진(모형).
- 예시:
class Cat
{
public string Color; // 데이터: 속성
public void Meow() // 메소드: 기능
{
Console.WriteLine($"{Color} 고양이: 야옹");
}
}
Cat kitty = new Cat(); // Cat 클래스의 객체 생성
3. 클래스와 객체의 관계
- 클래스는 복합 데이터 형식의 참조 형식입니다.
- **객체(Object)**는 클래스의 인스턴스(실체)입니다.
Cat kitty = new Cat();
- new: 생성자를 호출해 객체를 힙(Heap)에 생성.
- kitty: 생성된 객체의 참조를 저장.
4. 생성자(Constructor)와 종료자(Destructor)
a. 생성자
- 클래스와 같은 이름을 가지며 객체 생성 시 호출됩니다.
- 객체를 초기화하기 위한 용도로 사용됩니다.
- 예시:
class Cat
{
public string Color;
// 생성자
public Cat(string color)
{
Color = color;
}
public void Meow()
{
Console.WriteLine($"{Color} 고양이: 야옹");
}
}
Cat kitty = new Cat("검은색"); // 생성자 호출
b. 종료자
- 객체가 소멸될 때 호출되는 특별한 메소드.
- 매개변수나 한정자가 없으며 오버로딩 불가능.
- CLR의 가비지 컬렉터가 객체의 소멸 시점을 판단해 호출.
- 예시:
class Cat
{
~Cat()
{
Console.WriteLine("Cat 객체가 소멸되었습니다.");
}
}
5. 정적 필드와 메소드 (Static)
- static 한정자를 사용해 클래스 자체에 소속되는 필드와 메소드.
- 특징:
- 클래스의 모든 인스턴스가 공유.
- 객체를 생성하지 않고 호출 가능.
- 예시:
class Counter
{
public static int Count = 0;
public static void Increment()
{
Count++;
}
}
Counter.Increment(); // 객체 없이 호출
Console.WriteLine(Counter.Count); // 출력: 1
6. 클래스의 기본 구조
class ClassName
{
// 필드 (Field): 데이터 저장
public string FieldName;
// 생성자 (Constructor): 객체 초기화
public ClassName(string value)
{
FieldName = value;
}
// 메소드 (Method): 동작 정의
public void MethodName()
{
Console.WriteLine($"Field: {FieldName}");
}
// 정적 메소드 (Static Method)
public static void StaticMethod()
{
Console.WriteLine("This is a static method.");
}
}
정리
- 클래스는 객체를 생성하기 위한 청사진으로, 속성(필드)과 기능(메소드)을 포함.
- 객체는 클래스의 인스턴스로, new 키워드를 통해 생성.
- 생성자는 객체를 초기화하고, 종료자는 객체 소멸 시 호출.
- 정적 필드/메소드는 클래스 자체에 속하며, 모든 인스턴스가 공유 가능.
'프로그래밍 언어 및 개발 도구 > c#' 카테고리의 다른 글
데이터 형식 변환: 정수, 부동소수점, 문자와 숫자의 변환 이해하기 (0) | 2024.12.14 |
---|---|
메소드 완벽 가이드: 선언부터 오버로딩, 로컬 함수까지 (0) | 2024.12.13 |
객체와 다형성: 클래스, 구조체, 확장 메소드, 튜플까지 (2) | 2024.12.13 |
접근 한정자와 메소드 반환 형식의 이해 (0) | 2024.12.13 |
분기문, 반복문, 점프문 완벽 정리 (0) | 2024.12.13 |