[Dart] Constructor

devvace ㅣ 2022. 12. 8. 20:01

# Class의 Instance화

void main() {
	Idol blackPink = Idol(); // Dart에서는 new를 안 넣어도 됨
	print(blackPink.name);
	print(blackPink.members);
	blackPink.sayHello();
	blackPink.introduce();
}

 

# Constructor

class Idol {
	String name;
	List<String> members;

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

- 조금 더 간결하게

class Idol {
	String name;
	List<String> members;

	Idol(this.name, this.members);
}

- Named constructor

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


class Idol {
	Idol.fromList(List value)
		: this.members = values[0],
			this.name = values[1];
}

※ Const constructor

 - const도 final과 같이 값을 변경 불가능하게 함

 - const로 선언하고 멤버가 같으면 같은 메모리 공간 사용, 그냥 선언하면 각각 다른 인스턴스로 인식

void main() {
	Idol blackPink = const Idol(
		'blackPink', ['지수'...], // const는 빌드 타임에 값을 알아야하는 특징이 있다.
	);
}

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