■ 클래스(Class) :
- 유사한 성질의 속성(Field)과 동작(Method)을 하나의 단위로 결합한 것
- 객체(object)를 만들기 위해 정의해 놓은 것
- 비유적 설명 :
· 붕어빵 틀(class), 붕어빵(object)
· 설계도(class), 설계도로 만들어낸 물건(object)
객체지향 프로그래밍(OOP : Object Oriented Programming) : - 모든 것을 객체(object)로 표현하려는 프로그래밍 패러다임(방법론) - 추상화, 캡슐화, 상속, 다형성 - 코드 재사용성이 좋음 - 유지보수가 쉬움 - 대규모 프로젝트에 적합 객체(Object) : - 세상의 모든 유형적(사람, 자동차 등), 무형적(개념, 행위)인 것을 표현한 것 |
■ Class 구조
■ Example
class Person
{
// Field
public string Name;
public int Age;
// Method
public void Move()
{
Console.WriteLine($"{Name}이 움직입니다.");
}
}
class Program
{
static void Main(string[] args)
{
Person person = new Person();
person.Name = "홍길동";
person.Age = 20;
person.Move();
}
}
■ 생성자(Constructor) :
- 클래스 명으로 정
- 객체가 생성 될 때 호출
- 객체 생성, 초기화 역할
- 명시적으로 구현하지 않으면 컴파일러가 자동으로 생성
■ 소멸자(Destructor) :
- 객체가 소멸할 때 호출
- 직접 호출 불가, 가비지 컬렉터의 판단에 호출
- 매개 변수 없음, 오버로딩 불가
■ Example
class Memoo
{
public Memoo()
{
Console.WriteLine("Memoo 생성");
}
public void Work()
{
Console.WriteLine("Memoo 작업");
}
~Memoo()
{
Console.WriteLine("Memoo 소멸");
}
}
class Program
{
static void Main(string[] args)
{
Memoo memoo = new Memoo();
memoo.Work();
}
}
'개인공부 > C#' 카테고리의 다른 글
[C#] 정적(Static) 클래스, 필드, 메서드 (0) | 2022.09.05 |
---|---|
[C#] 얕은 복사(Shallow Copy), 깊은 복사(Deep Copy) (0) | 2022.09.05 |
[C#] Call by Value, Call by Reference (0) | 2022.08.31 |
[C#] 메서드(Method) (0) | 2022.08.31 |
[C#] 흐름제어-점프문(Jump Statement) (0) | 2022.08.30 |