클래스

데이터(속성)와 행동(메서드)을 지정하여 객체를 생성하기 위한 사용자 정의 설계도 또는 템플릿입니다.

클래스는 객체 지향 프로그래밍(OOP)의 기본 개념입니다. 객체(인스턴스)를 생성하기 위한 건축 설계도 역할을 합니다.

클래스 구성 요소:
- 속성(필드/속성): 객체가 저장할 데이터(예: name, age).
- 메서드(함수): 객체가 수행할 수 있는 작업(예: bark(), calculateSalary()).
- 생성자: 새 객체를 초기화하는 특별한 메서드.

클래스와 객체의 관계:
Car가 클래스라면 myRedToyota는 해당 클래스의 객체(인스턴스)입니다.

        graph LR
  Center["클래스"]:::main
  Pre_object_oriented_programming["object-oriented-programming"]:::pre --> Center
  click Pre_object_oriented_programming "/terms/object-oriented-programming"
  Rel_object["object"]:::related -.-> Center
  click Rel_object "/terms/object"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧒 5살도 이해할 수 있게 설명

클래스는 집의 설계도와 같습니다. 방이 몇 개이고 창문이 어디에 있는지 알려줍니다. 하지만 설계도 안에서 살 수는 없습니다. 설계도를 바탕으로 실제 집(객체)을 지어야 합니다. 같은 설계도(클래스)로 여러 개의 다른 집(객체)을 지을 수 있습니다.

🤓 Expert Deep Dive

클래스는 다형성, 상속 및 캡슐화를 정의합니다. 추상 클래스는 인스턴스화할 수 없으며 하위 클래스의 기반 역할을 합니다. 인터페이스는 구현 없이 계약을 정의합니다. 메타클래스(Python/Smalltalk)는 클래스를 만드는 클래스입니다. 정적 멤버는 인스턴스가 아닌 클래스 자체에 속합니다.

🔗 관련 용어

📚 출처