Dart에서 클래스는 어플리케이션에서 객체를 다루는 데 기본적인 역할을 합니다. 생성자는 클래스의 인스턴스를 생성하는 데 사용되며, 객체의 상태를 초기화하는데 특히 중요한 역할을 합니다.
생성자 정의
Dart에서 클래스 생성자는 클래스 이름과 동일한 이름으로 정의합니다. 생성자는 클래스의 새로운 인스턴스를 생성할 때 호출되며, 클래스의 각 인스턴스는 생성자의 매개변수를 통해 고유한 속성을 가질 수 있습니다.
기본 생성자
기본 생성자는 객체를 생성할 때 호출할 수 있는 파라미터가 없는 생성자입니다. 다음은 기본 생성자를 포함하는 클래스 예제입니다.
class Point {
int x;
int y;
//생성자
Point() {
x = 0;
y = 0;
}
}
매개 변수가 있는 사용자 정의 생성자
매개 변수가 있는 생성자는 객체를 생성할 때 필요한 파라미터를 제공할 수 있는 생성자입니다. 다음은 매개변수 있는 생성자를 포함하는 클래스 예제입니다.
class Point {
late final String name;
late int age;
Point(String name, int age) {
this.name = name;
this.age = age;
}
}
Dart에서는 클래스에서 생성자를 사용할 때, this 키워드를 사용하여 클래스의 인스턴스 변수에 접근할 수 있습니다. 생성자의 매개변수와 클래스의 멤버 변수 이름이 같은 경우에는, 매개변수 이름 앞에 this.을 붙여서 구분할 수 있습니다.
위 코드에서 late는 변수의 값을 나중에 받아오는 것을 의미합니다. 객체 선언과 출력하는 예시는 아래와 같습니다.
class Point {
late final String name;
late int age;
// 생성자
Point(String name, int age) {
this.name = name;
this.age = age;
}
// 메소드
void sayHi() {
print("my name is $name, my age is $age");
}
}
void main() {
// 객체 생성
var obj = Point("john",12);
obj.sayHi();
}
객체에서 생성과 동시에 argument를 전달하고, 이를 생성자를 통해 초기화 해준 후, 매개 함수를 실행한 결과입니다.
보다 간단하게 생성자 정의
late 키워드를 삭제하고 보다 간단하게 생성자를 정의할 수 있습니다.
class Point {
final String name;
int age;
// 간단한 생성자 정의방법
Point(this.name, this.age);
void sayHi() {
print("my name is $name, my age is $age");
}
}
void main() {
var obj = Point("john",12);
obj.sayHi();
}
생성자 파라미터에 this 키워드를 사용하여 클래스의 인스턴스 변수에 바로 접근할 수 있습니다.
마무리
Dart에서 클래스 생성자는 클래스의 인스턴스를 생성하는 데 사용되며, 객체의 상태를 초기화하는데 중요한 역할을 합니다. this 키워드를 사용하여 생성자의 매개변수와 클래스의 멤버 변수를 구분할 수 있으며, 객체의 상태를 초기화하는 데 필요한 정보를 전달할 수 있습니다.
Dart에서는 기본 생성자와 사용자 정의 생성자를 모두 제공하며, 사용자 정의 생성자는 객체 생성 시에 필요한 매개변수를 정의할 수 있습니다. 객체를 생성하는 데 필요한 정보를 정의하여, 더욱 효율적인 코드를 작성할 수 있습니다.
오늘도 행복한 코딩생활 되시길 바라겠습니다.
감사합니다.
'개발 > Dart' 카테고리의 다른 글
Dart 기본 - 18. class 기본, 객체지향 프로그래밍의 기초 (0) | 2023.02.06 |
---|---|
Dart 기본 - 17. typedef, 복잡한 함수 타입을 간결하게 하는 방법 (0) | 2023.02.05 |
Dart 기본 - 16. QQ 연산자 사용 방법, 삼항연산자보다 간편하게 쓰기 (0) | 2023.02.04 |
Dart 기본 - 15. Optional Parameters 와 Positional Parmeters (0) | 2023.02.02 |
Dart 기본 - 14. named parameter, required 사용 방법 (0) | 2023.02.01 |
댓글