[Flutter] 문법정리#3 클래스
반응형
네임드 생성자
- 클래스를 생성하는 여러 방법을 명시하고 싶을때 사용
class Idol{
final String name;
final int memberCount;
Idol(String name, int memberCount)
: this.name = name,
this.memberCount = memberCount;
// 네임드 생성자
Idol.fromMap(Map<String, dynamic>)
: this.name = map['name']
this.memberCount = map['memberCount'];
}
void main (){
Idol blackPink = Idol('블랙핑크', 4)
Idol bts = Idol.fromMap({
'name' : 'BTS',
'memberCount' : 7,
});
}
Private
Dart에서 private는 클래스 내부에서만 사용하는 변수지만 Dartㄴ에서는 같은 파일 안에서만 접근 가능한 변수
변수명을 _로 시작하면 프라이빗 변수.
class Idol{
String _type // private 변수 선언
}
getter/ setter
class Idol{
String _name
String get name{
return this._name;
}
set name(String name){
this._name = name;
}
}
상속 - extends
오버라이드 - @override
인터페이스 - implements
추상 - abstract
믹스인
mixin IdolSingMixin on Idol{
void sing(){
print('${this.name]이 노래를 부릅니다.')
}
}
class BoyGroup extends Idol with IdolSingMixin {
BoyGroup(super.name, super.memberCount,);
void sayMale(){
print('남자아이돌입니다');
}
}
void main() {
BoyGroup bts = BoyGroup('BTS' 7);
bts.sing();
}
제네릭 <T>
class Cache<T>
{
final T data;
Cache({required this.data,});
}
void main {
final cache = Cache<List<int>>( data : [1,2,3],);
print(cache.data.reduce( (value, element) => value + element) ; //6출력!
}
캐스케이드 연산자 (..)
- 해당 인스턴스의 속성이나 멤버 함수를 연속해서 사용하는 기능.
반응형
'Study > Flutter' 카테고리의 다른 글
[Flutter] Widget정리 #2 배치관련 위젯 (0) | 2023.01.16 |
---|---|
[Flutter] Widget정리 #1 Text, 제스처, 디자인 (0) | 2023.01.13 |
[Flutter] 앱 개발 로드맵 (0) | 2023.01.12 |
[Flutter] 문법정리#2 함수, 람다, typedef (0) | 2023.01.12 |
[Flutter] 문법정리#1 기본 타입 정리 (0) | 2023.01.11 |
댓글