Dart
Dart 기초 - 클래스, 생성자 (3)
아랑팡팡
2024. 4. 25. 12:23
728x90
Dart 기초 - 클래스, 생성자 (3)
1. Class 클래스
- class는 객체를 만들기위한 템플릿으로 class를 활용해 데이터와 코드를 그룹화해 관련된 코드를 유지하고 복잡한 문제를 관리 및 재사용성, 유지보수성을 높이는데 효율적이다.
Class의 구성요소 | |
Fields | 클래스 내에 선언된 변수들로 객체의 상태나 특성을 저장해 각 인스턴스마다 고유값을 가질 수 있다. |
Methods | 클래스에서 정의된 함수로 객체가 수행할 수 있는 행동으로 데이터 조작, 계산 등의 결과를 수행하고 반환한다. |
Constructor | 클래스에서 객체를 생성할때 호출되는 메서드로 생성자는 객체의 초기상태를 설정해 사용한다. |
Getters Setters |
필드에 접근을 제어하는 메서드로 getter는 필드의 값을 반환하고 setter는 필드의 값을 설정한다. |
Inheritance | 클래스가 다른 클래스의 필드나 메서드를 상속받을 수 있다. 해당 상속을 통해서 기존의 코드를 재사용하고 확장할 수 있다. |
void main(){
Point point = Point(3, 3);
print(point);
print(point.x);
print(point.y);
Point aPoint = Point(2, 5);
print(aPoint.x);
print(aPoint.y);
Point bPoint = Point(3, 10);
print(bPoint.x);
print(bPoint.y);
}
class Point{
double? x;
double? y;
Point(this.x, this.y);
}
2. Constructor 생성자
- 생성자는 클래스의 인스턴스를 생성하고 초기화하는 함수로 클래스 명을 사용하여 다양한 형태로 정의 가능하다.
Default Constructors 기본생성자
- 매개변수가 없는 생성자로 클래스 내에서 명시적으로 정의하지 않았다면 컴파일러가 자동으로 제공하여 매개변수가 없는 기본 생성자를 만든다.
class Car{
Car(){
print("이것은 디폴트 생성자");
}
}
Redirecting Constructors 리다이렉팅 생성자
- 목적이 동일한 생성자로 생성자의 본문은 비어 있지만 전달 된 생성자에 대한 초기값 등을 구현할 때 활용한다.
class Car{
String model;
int year;
Car(this.model, this.year);
Car.namedConstructor(String model) : this(model, 2024);
}
Named Constructors 이름이 있는 생성자
- 이름이 있는 생성자는 클래스에 여러 옵션을 제공한다.
class Car{
String model;
int year;
Car(this.model, this.year);
Car.named(String model){
this.model = model;
this.year = DateTime().now().year;
}
}
Const Constructors 상수 생성자
- 컴파일 시점에서 상수로 선언된 객체를 생성하며 모든 필드는 final이어야 한다.
class Num{
final int x, y;
const Num(this.x, this.y);
}
Factory Constructors 팩토리 생성자
- 생성자가 새로운 객체의 인스턴스를 반환하지 않도록 한다.
class Num {
static Num? _instance;
Num._instance();
factory Signleton(){
return _instance ??= Singleton._internal();
}
}
728x90
반응형
LIST