728x90
반응형
내가 아는 클래스 기본 문법
Idol Class 를 만들고 안에
name 변수를 만들었다고 했을 때
같은 괄호 내에서 변수를 사용하려면 this 를 사용해서 값을 불러옴
class를 사용할 땐 인스턴스화 해서 사용함
그리고 밑엔 응용편
void main() {
Idol redVelvet = new Idol(
'슬기',
'레드벨벳'
);
redVelvet.sayName();
}
class Idol {
// 변수 선언
String name;
String group;
// 인스턴스 생성시 인자를 받음 constructor
Idol(
String name,
String group,
) : this.name = name,
this.group = group;
void sayName(){
print('제 이름은 ${this.name} 입니다');
}
}
자바스크립트는 constructor 를 선언해줘야하는데
dart는 따로 선언 필요 없고 같은 이름으로 인자 받을 수 있게 만들어 놓는 듯
기본 값이 필요하다 했을 때
Idol ({String name : "은지"}) : this.name = name
이런식으로 쓰면 됨
class 내부에서 값 잘 들어왔나 콘솔 찍을 때는
Idol(String name) : this.name = name{ print('지민 $name'); }
이렇게 찍음
응용편2
void main() {
// 인스턴스화
Idol bts = Idol('rm');
bts.sayName();
// Map을 이용한 인스턴스화
Map<String, dynamic> inputData = {'name': 'jimin'};
Idol anotherBTSMember = Idol.fromMap(inputData);
anotherBTSMember.sayName();
}
class Idol {
String name;
// 생성자
Idol(String name) : this.name = name{
print('지민 $name');
}
// Map을 이용한 생성자
Idol.fromMap(Map<String, dynamic> input) : this.name = input['name'];
void sayName() {
print('제 이름은 $name');
}
}
지민 rm
제 이름은 rm
제 이름은 jimin
이때 Idol.fromMap 으로 인스턴스화 했기 때문에
Idol 생성자는 안 거침
이게 자바스크립트와의 차이
js 는 1클래스 당 1생성자임
dart는 1클래스 당 여러 생성자
728x90
반응형
'TIL' 카테고리의 다른 글
커링 (1) | 2023.12.26 |
---|---|
dart4 - class2 (0) | 2023.12.10 |
const test ()=>()=>{} (0) | 2023.12.07 |
dart 3 <= enum, 타입 관련 이야기라 재밌음 (1) | 2023.11.29 |
dart 2 (0) | 2023.11.27 |
댓글