Class - Constructor


1. 기본

//Idol class
class Idol {
  String name = '블랙핑크';
  List<String> members = ['지수', '제니', '리사', '로제'];

	Idol(); // 기본 생성자 (생략 가능)

  void sayHello() {
    print('안녕하세요 블랙핑크입니다.');
  }

  void introduce() {
    print('저희 멤버는 지수, 제니, 리사, 로제가 있습니다.');
  }
}

// 사용
void main() {
	Idol blackPink = Idol();
	
	print(blackPink.name);
	print(blackPink.members);
	blackPink.sayHello();
	blackPink.introduce();
}

2. Constructor - positional parameter (1)


class Idol {
	//...
	
	Idol(String name, List<String> members)
		: this.name = name,
			this.members = members;
		
	//...
}

// 사용
void main() {
  Idol blackPink = Idol(
    '블랙핑크',
    ['지수', '제니', '리사', '로제'],
  );
}

3. Constructor - positional parameter (2)

class Idol {
	//...
	
	Idol(this.name, this.members);
		
	//...
}

4. Named Constructor

class Idol {
	// ...

  Idol(this.name, this.members); // 기본 컨스트럭터
  
  Idol.fromList(List values)   // 네임드 컨스트럭터
      : this.members = values[0],
        this.name = values[1];

	// ...
}

// 사용
void main() {
	Idol bts = Idol.fromList(
		[
			['RM', '진', '슈가', '제이홉', '지민', '뷔', '정국'],
			'BTS',
		]
	);
}

5. immutable programming