설계도에 빗댄 Dart 개념 총정리
1. 클래스(Class)
클래스는 설계도와 같다. 클래스는 객체(실물)를 만들기 위한 청사진으로, 자동차의 모델, 색상 같은 속성(특징)과 동작(메서드)을 정의한다.
- 예: 자동차 설계도에 차의 모델, 색상, 운전 방법이 정의되어 있는 것과 같다.
2. 인스턴스(Instance)
인스턴스는 설계도를 바탕으로 실제로 만들어진 완성된 자동차다. 클래스라는 설계도를 바탕으로 실물(객체)이 생성된 것이다.
- 예: 설계도를 바탕으로 제작된 Tesla Model S라는 실제 자동차가 인스턴스다.
3. 상속(Inheritance)
상속은 부모 설계도에서 자식 설계도로 기능과 속성을 물려받는 것이다. 부모 설계도에 있는 공통된 부분을 물려받아, 자식 설계도는 이를 기반으로 추가적인 기능을 더할 수 있다.
- 예: Vehicle(탈것)이라는 설계도를 상속받아 Car(자동차) 설계도가 "4개의 바퀴로 움직인다"는 구체적인 동작을 추가하는 것과 같다.
4. 추상화 클래스(Abstract Class)
추상화 클래스는 구체적인 기능을 구현하지 않은 추상적인 설계도다. 다른 클래스가 반드시 구현해야 할 공통적인 기능만 정의하고, 세부적인 구현은 상속받는 클래스가 하도록 만든다.
- 예: Vehicle(탈것) 설계도에서 "운전한다"라는 공통된 기능을 정의하고, 구체적으로 "어떻게 운전하는지"는 Car나 Bike가 구현해야 하는 것과 같다.
5. 메서드(Method)
메서드는 설계도에서 정의된 동작이다. 자동차가 어떻게 운전할지, 어떻게 멈출지 등의 행동을 정의하는 것이다.
- 예: 자동차 설계도에서 "운전한다", "멈춘다" 같은 동작을 정의하는 것이 메서드다.
6. super
super는 상속받은 부모 설계도의 기능을 호출할 때 사용하는 것이다. 부모 클래스의 속성이나 메서드를 자식 클래스에서 사용할 수 있게 해준다.
- 예: Vehicle 설계도의 "운전" 기능을 상속받은 Car가 "운전" 기능을 호출하는 것과 같다.
7. Mixins
Mixins는 여러 설계도에 공통적으로 추가할 수 있는 기능을 정의하는 것이다. 상속처럼 부모-자식 관계를 형성하지 않고, 필요한 기능만 혼합(mix)하여 추가할 수 있다.
- 예: 자동차 설계도에 "높이를 측정하는 기능"을 추가하고 싶을 때, Tall이라는 설계도를 모든 자동차 설계도에 추가하는 것과 같다.
8. Cascade Notation
Cascade Notation은 같은 객체에 여러 동작을 연속적으로 수행할 수 있는 문법이다. 설계도에 정의된 기능을 하나씩 호출하지 않고, 한 번에 여러 동작을 수행할 수 있게 해준다.
- 예: 자동차의 색상을 바꾸고, 속도를 높이고, 방향을 바꾸는 것을 하나하나 호출하지 않고 한 번에 처리하는 것과 같다.
이 정리에서는 클래스, 인스턴스, 상속, 추상화 클래스, 메서드, super, Mixins, Cascade Notation 등의 개념을 설계도에 빗대어 설명했다. 이를 통해 Dart의 개념들을 실제 설계와 동작에 쉽게 연결할 수 있다.
'개발자 > SupaBase && Flutter' 카테고리의 다른 글
05. (Dart 개념_노마드코더 강의)Classes (0) | 2024.10.23 |
---|---|
04.(Dart 개념_노마드코더 강의) Functions (2) | 2024.10.23 |
03. (Dart 개념_노마드코더 강의) Data Type (1) | 2024.10.23 |
02. (Dart 개념_노마드코더 강의) Variables (1) | 2024.10.23 |
01. (Dart 개념_노마드코더 강의) Flutter가 Dart를 선택한 이유 (0) | 2024.10.23 |