Machineboy空
Class vs Object vs Instance 본문
Class는 추상화: 복잡한 것들을 목적에 맞게 단순화하는 것, 단순하고 간결하면서도 핵심적인 내용은 전달
- 자신과의 소통, 컴퓨터와의 소통, 코드를 작성하는 동료들과의 소통, 내가 만든 프로그램을 사용하는 사용자와의 소통
- 프로그래밍은 추상화의 연속이다!
개념 | 정의 | 예시 | 구성 | |
클래스 (Class) | 객체(Object)를 만들어내기 위한 틀 객체의 속성과 기능 |
자동차 설계도 붕어빵 틀 |
속성 (데이터) | 크기, 종류,파일 생성 날짜 |
기능 (메소드) | 수정,삭제 | |||
객체 (Object) | 클래스(Class)를 바탕으로 만드는 실체 클래스로 선언된 변수를 객체 |
실제 생산된 자동차 팥 100g, 밀가루100g으로 만들어진 붕어빵 |
||
인스턴스(Instance) | 객체가 메모리에 할당이 된 상태이며, 런타임에 구동되는 객체 객체와 같은 의미로 쓰이기도 함 |
//string: Class, C#에서 정의된 문자열을 다루는 클래스
//a,b: Object이자 Instance, 실제로 데이터를 담을 수 있는 실제 객체
string a = "abc";
string b = "kitty";
- 멤버(Member): 클래스 내에서 선언된 요소 (필드, 메소드, 프로퍼티, 이벤트 등)
멤버(Member) | |
필드(field) | |
메소드(method) | |
프로퍼티(property) | |
이벤트(event) |
//Cat을 고양이가 가진 속성을 활용하여 추상화하여 클래스로 표현
class Cat
{
public string Name; //필드
public string Color; //필드
public void Meow() //메소드
{
Console.WriteLine("{0}: 야옹", Name);
}
}
//Cat 클래스를 바탕으로 Object 생성
Cat cat; //객체만 생성
Cat Kitty = new Cat(); //kitty라는 객체 생성하고 바로 인스턴스 생성
kitty.Color = "하얀색";
kitty.Name = "키티";
kitty.Meow();
'Computer > 개념' 카테고리의 다른 글
상속: virtual , override (0) | 2023.09.21 |
---|---|
괄호들: Generic [ ], ( ), { }, < > (0) | 2023.09.20 |
OOP 객체지향 4가지 원리 (0) | 2023.09.08 |
Data Structure: Queue & Stack (0) | 2023.09.08 |
동적(Dynamic) vs 정적(Static) (1) | 2023.09.07 |