본문 바로가기

[Flutter] 문법정리#3 클래스

I'm 영서 2023. 1. 12.
반응형

네임드 생성자

- 클래스를 생성하는 여러 방법을 명시하고 싶을때 사용

 

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출력!
}

 

캐스케이드 연산자 (..)

- 해당 인스턴스의 속성이나 멤버 함수를 연속해서 사용하는 기능. 

반응형

댓글