데브허브 | DEVHUB | 다트 기초 문법 - 13일차 / 클래스, 생성자다트 기초 문법 - 13일차 / 클래스, 생성자
- 클래스 정의: 클래스는 여러 형태의 데이터를 담을 수 있는 사용자 정의 자료형으로, 변수나 자료구조의 한계를 넘어 데이터를 체계적으로 다루기 위해 사용됩니다. 🏗️
- 객체(인스턴스) 생성: 클래스로부터 만들어진 실제 데이터를 객체 또는 인스턴스라고 하며, 이는 메모리 공간에 할당된 독립적인 존재입니다. 👥
- 생성자 역할: 생성자(Constructor)는 클래스의 객체를 메모리에 올리고 초기화하는 특별한 함수입니다. 🛠️
- 멤버 변수: 클래스 내부에 선언된 변수들은 해당 클래스의 멤버 변수(또는 필드)라고 불리며, 객체의 속성을 나타냅니다. 🏷️
- 생성자 매개변수 (위치 기반): 함수와 동일하게 위치 기반 매개변수를 사용하여 객체 생성 시 값을 전달할 수 있습니다. ➡️
- 선택적 위치 기반 매개변수 및 기본값:
[]를 사용하여 매개변수를 선택적으로 만들 수 있으며, =를 통해 기본값을 지정할 수 있습니다. ❓🎁
- 생성자 매개변수 (이름 기반):
{}를 사용하여 이름 기반 매개변수를 정의할 수 있으며, 이는 가독성을 높이고 순서에 상관없이 값을 전달할 수 있게 합니다. 🔑
- 초기화 리스트 (콜론 사용): 생성자 본문이 실행되기 전에 콜론(
:) 뒤에 초기화 리스트를 사용하여 멤버 변수를 초기화하거나 특정 로직을 수행할 수 있습니다. 📝
- 추가/이름 있는 생성자:
ClassName.constructorName() 형태로 여러 개의 생성자를 정의하여 다양한 방식으로 객체를 생성할 수 있습니다. ✨
- 리다이렉팅 생성자:
this()를 사용하여 한 생성자가 같은 클래스의 다른 생성자를 호출하도록 리다이렉트할 수 있어 코드 재사용성을 높입니다. 🔄
- 실제 코드 분석 (Flutter
MaterialApp): Dart의 클래스 및 생성자 문법은 Flutter 프레임워크의 MaterialApp과 같은 실제 코드에서 광범위하게 활용되며, 이름 기반 생성자, 초기화 리스트, 추가 생성자 등의 개념이 적용됩니다. 🔍
- 메모리 할당: 객체 생성은 곧 메모리 공간에 데이터를 올리는 것을 의미하며, 각 객체는 고유한 메모리 공간을 가집니다. 🧠