Class와 Struct는 둘 다 데이터를 저장하고 관련된 기능을 묶는 데 사용되는 "자료형"입니다.
Class 와 Struct의 핵심적인 차이는 사용 목적과 기본 동작 방식에 있습니다.
기본 사용 목적
Class (클래스): 객체 지향 프로그래밍에서 주로 사용되며, 복잡한 데이터를 다루고, 기능(methods)을 포함한 데이터 구조를 만들 때 사용됩니다.
Struct (구조체): 간단한 데이터를 담는 데 주로 사용되며, 메모리 효율이 중요하거나 객체 지향적 기능이 필요 없을 때 사용됩니다.
메모리 할당 방식
Class는 참조 타입(Reference Type)입니다. 클래스의 인스턴스를 생성하면 그 데이터는 힙(heap) 메모리에 저장되고, 변수에는 힙의 주소를 참조하는 포인터가 저장됩니다.
Struct는 값 타입(Value Type)입니다. 구조체 인스턴스를 생성하면 스택(stack) 메모리에 저장되고, 변수에 직접 값이 저장됩니다.
상속 가능 여부
Class는 상속이 가능하여, 클래스 간 계층 구조를 만들 수 있습니다.
Struct는 상속이 불가능합니다. 따라서 상속 관계를 만들지 않고 독립적으로 사용합니다.
기본 설정
Class의 멤버는 기본적으로 private로 설정됩니다.
Struct의 멤버는 기본적으로 public으로 설정됩니다.
사용 방식
Class 를 사용할 때는 생성자(constructor)를 통해 객체를 만들어야 하고,
Struct 는 바로 값을 초기화하여 사용할 수 있습니다.
이해하기 위한 키워드
참조 타입 (Reference Type)
객체가 메모리의 주소만을 참조하는 타입.
값 타입 (Value Type)
변수가 데이터 자체를 저장하는 타입.
상속 (Inheritance)
클래스가 다른 클래스를 확장하여 재사용하거나 기능을 추가할 수 있는 특성.
힙(Heap)과 스택(Stack)
메모리가 할당되는 위치로, 참조 타입은 힙, 값 타입은 스택에 주로 저장됩니다.
캡슐화 (Encapsulation)
클래스나 구조체에서 데이터와 기능을 묶어 외부에서 접근을 제한하는 개념.
'개발' 카테고리의 다른 글
값 Value 와 참조 Referance 타입 (0) | 2024.10.27 |
---|---|
제어 유닛 [Control Unit] (0) | 2024.10.27 |
[ALU] Arithmetic Logic Unit, 산술 논리 연산 장치 (0) | 2024.10.26 |
[레지스터] Register (1) | 2024.10.26 |
[CPU 아키텍처] CUP Architecture (0) | 2024.10.26 |
댓글