개발

Class 와 Struct의 차이

explosion149 2024. 10. 22.
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

댓글

💲 추천 글