class Dog {
String name;
int age;
String color;
int thirsty;
Dog(String name, int age, String color, int thirsty)
: this.name = name,
this.age = age,
this.color = color,
this.thirsty = thirsty;
}
class Cat {
String name;
int age;
String color;
int thirsty;
Cat(this.name, this.age, this.color, this.thirsty);
}
일반적인 생성자는 이렇다.
class Dog {
int age;
String name;
// {}를 쓰면 선택해서 쓸수 있다. 선택적 매개변수
// required를 쓰면 반드시 받아야한다.
// cascade ..
Dog({required this.age, required this.name});
}
class Cat {
int? age;
String? name;
Cat({this.age, this.name = "토토"});
void cry() {
print("야옹");
}
}
void main() {
Dog d = Dog(name: "토토", age: 10);
Cat c = Cat(age: 15)..cry();
print("개는 : ${d}");
print("고양이는 : ${c}");
}
{}를 쓰면 빌더 패턴처럼 사용이 가능하다. 필요한것만 넣어서 쓸수 있다.
생성과 동시에 init 메서드를 실행 시키고 싶은 경우 .. 을 붙혀 메소드를 적는다.
class User {
int id;
String username;
String password;
User(this.id, this.username, this.password);
User.hello(
{required this.id, required this.username, required this.password});
User.fromJson(Map<String, dynamic> json)
: this.id = json["id"],
this.username = json["username"],
this.password = json["password"];
}
void main() {
User u1 = User(1, "ssar", "1234");
User u2 = User.hello(id: 1, username: "ssar", password: "1234");
User u3 = User.fromJson({"id": 1, "username": "ssar", "password": "1234"});
print(u1.username);
print(u2.username);
print(u3.username);
}
Share article