Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- android architecture component
- Django REST Android
- 안드로이드
- livedata
- Flutter TextField
- 안드로이드 구글맵
- C++
- kodility
- C/C++
- UWP
- Java
- Python
- RxAndroid
- Django REST framework
- 코틀린
- flutter firestore
- Django REST
- 프로그래머스
- C
- RxJava
- android push
- FLUTTER
- dart
- Android P
- Kotlin
- NDK
- Rxjava2
- Android
- 알고리즘
- mfc
Archives
- Today
- Total
개발하는 두더지
Flutter - Dart로 추상클래스 만들기 본문
dartpad - dart 코드를 작성하여 실행시켜볼 수 있는 콘솔
Dart로 추상클래스 만들기
dart는 추상클래스를 지원합니다. 그리고 한개의 dart 파일에서 여러개의 클래스를 선언할 수 있습니다.dart.math
는 dart의 core library 입니다. 다른 코어 라이브러리들도 import 시킬 수 있습니다.
include dart:core, dart:async, dart:convert, dart:collection
dart 1.x 버전에서는 PI
처럼 대문자로 표기했지만 dart 2에서는 pi
처럼 소문자로 표기합니다.
클래스 외부에 팩토리 메소드를 최상위 메소드로 구현하여 사용할 수 있습니다.
import 'dart:math';
Shape shapeFactory(String type) {
if (type == 'circle') return Circle(2);
if (type == 'square') return Square(2);
throw 'Can\'t create $type.';
}
abstract class Shape {
num get area;
}
class Circle implements Shape {
final num radius;
Circle(this.radius);
num get area => pi * pow(radius, 2);
}
class Square implements Shape {
final num side;
Square(this.side);
num get area => pow(side, 2);
}
main() {
final circle = shapeFactory('circle');
final square = shapeFactory('square');
print(circle.area);
print(square.area);
}
또는 factory
키워드를 사용하여 팩토리 생성자를 구현할 수 있습니다.
import 'dart:math';
abstract class Shape {
factory Shape(String type) {
if (type == 'circle') return Circle(2);
if (type == 'square') return Square(2);
throw 'Can\'t create $type.';
}
num get area;
}
class Circle implements Shape {
final num radius;
Circle(this.radius);
num get area => pi * pow(radius, 2);
}
class Square implements Shape {
final num side;
Square(this.side);
num get area => pow(side, 2);
}
main() {
final circle = Shape('circle');
final square = Shape('square');
print(circle.area);
print(square.area);
}
'Flutter' 카테고리의 다른 글
Flutter - 무한 스크롤링 리스트뷰 만들기 (0) | 2019.04.21 |
---|---|
Flutter - StatefulWidget 이란? (1) | 2019.04.21 |
Flutter - Dart를 함수형 프로그래밍처럼 동작시키기 (0) | 2019.04.20 |
Flutter - dart로 클래스 생성자 파라미터를 optional 하게 만들어보기 (0) | 2019.04.20 |
Flutter - Dart로 클래스 만들어보기 (0) | 2019.04.20 |
Comments