Open name27 opened 1 year ago
class Subway { String line; String current; List<Human> passengers; Subway( {required this.line, required this.current, required this.passengers}) { print('[$line] 지하철이 생성되었습니다'); } @override String toString() => "[$line | $current] 현재 지하철 탑승인원 ${passengers.length}명"; } class Human { String name; int money; dynamic curSubway; Human({required this.name, required this.money, this.curSubway}); getOn(subway) { if (money > 1500) { subway.passengers.add(Human(name: name, money: money)); curSubway = subway.toString(); money = money - 1500; return "$name이(가) 성공적으로 탑승하였습니다. (남은 돈 : ${money})"; } return "$name이(가) 탑승에 실패하엿습니다 (잔액부족)"; } @override String toString() => "Human(human:$name, money: $money, curSubway: $curSubway )"; } void main() { // 인스턴스 생성 var subway = Subway(line: '2호선', current: '홍대입구역', passengers: []); var human1 = Human(name: '사람1', money: 5000, curSubway: null); var human2 = Human(name: '사람2', money: 3450, curSubway: null); var human3 = Human(name: '사람3', money: 450, curSubway: null); // 사람 탑승 print(human1.getOn(subway)); print(human2.getOn(subway)); print(human3.getOn(subway)); // 현재 지하철 탑승 print(subway.toString()); // 각 사람들의 현재 상태를 출력 print(human1.toString()); print(human2.toString()); print(human3.toString()); }