클래스는 데이터를 어떤식으로 받을지 정하는 약속이다.
통장에 대한 정보는 아래와 같다.
이것에 대한 약속을 만들어보자.
class Bank {
final String name; /// 은행명
final String logoImagePath; /// 은행 로고이미지 명
Bank(this.name, this.logoImagePath);
}
우리는 앞으로 은행에 대한 정보는 이렇게 받을 것이다 라고 약속한다.
class BankAccount {
final Bank bank; /// 위의 약속을 갖는 bank
final String? accountTypeName; /// 통장의 이름이다.
int money; /// 잔고 잔고는 매번 변경되기 때문에 final을 쓰지 않는다
BankAccount(
this.bank,
int.money,
{
this.accountTypename /// 이렇게 중괄호 안에 있다면 선언 하지 않아도 ok라는 뜻
}
)
};
이렇게 모든 약속은 만들었고, 더미 데이터를 생성해보자.
/// Bank import 생략
final bankHana = Bank("하나은행", "assets/image/bank_logo_hana.png");
final bankShinhan = Bank("신한은행", "assets/image/bank_logo_shinhan.png");
은행의 임시 데이터를 생성했다. 신한은행(bankShinhan)
, 하나은행(bankHana)
만든 은행 데이터를 이용하면 처음에 봤던 이미지의 임시 데이터를 만들 수 있다.
final bankAccountHana = BankAccount(bankHana, 512482, accountTypename : "달려라 2030통장");
final bankAccountShinhan = BankAccount(bankShinhan, 5681902, accountTypename : "신한주거래통장");
print(bankAccountHana.bank.name)
/// 하나은행
print(bankAccountHana.bank.logoImagePath)
/// assets/image/bank_logo_hana.png
print(bankAccountHana.bank.money)
/// 512482
print(bankAccountHana.bank.accountTypeName)
/// 달려라 2030통장
/// ... 우리은행 동일
///추가 해당 값을 사용할땐 리스트 형태로 합쳐야 사용에 편리하다.
final bankAccounts = [bankAccountHana, bankAccountShinhan];
클래스가 어려웠었는데, 이렇게 정리하니까 이해가 된다.