Ôn tập: Phòng bán vé
Thuộc phần Lập trình hướng đối tượng trong hành trình Kotlin của Coddy. Bài học 16 trên 57.
Thử thách
Trung bìnhXây dựng một phòng vé nhỏ bằng ba kiểu khai báo.
Ticketcó hàm khởi tạo riêng nhậnnumber,showvàseat. Đối tượng đồng hành chứaconst val SEATS = 3, một biến đếm riêng và hàm tạoissue(show, seat), hàm này cấp cho vé các số 1, 2, 3, ...;issuedlà số vé đã phát hành tính đến thời điểm hiện tại.label()trả về#1 Hamlet seat 2.BoxOfficelà một đối tượng.sell(show, seat)trả lờino seat 4khi số ghế nằm ngoài khoảng từ 1 đếnTicket.SEATS,seat 2 takenkhi ghế đó đã được bán cho suất diễn đó, nếu không thì phát hành một vé và trả lời bằng nhãn của vé.refund(number)giải phóng ghế của vé đã bán và trả lờirefunded #1, hoặcno ticket #9.report()trả lờiHamlet 2/3, Cats 1/3với các suất diễn theo thứ tự bảng chữ cái, hoặcnothing sold.
Code được cung cấp đọc các lệnh sell Hamlet 2, refund 1 hoặc report, in ra từng câu trả lời và cuối cùng in tickets issued: kèm số lượng. Số vé không bao giờ được dùng lại sau khi hoàn tiền.
Code của bạn nằm trong Ticket.kt và BoxOffice.kt. Main.kt chứa code đầu vào/đầu ra được cung cấp và bạn không thể chỉnh sửa tệp này.
Tự làm thử
fun main() {
// Đoạn code đầu vào/đầu ra đã có sẵn: giữ nguyên
val input = generateSequence(::readLine).toList()
for (cmd in input) {
val p = cmd.split(" ")
when (p[0]) {
"sell" -> println(BoxOffice.sell(p[1], p[2].toInt()))
"refund" -> println(BoxOffice.refund(p[1].toInt()))
else -> println(BoxOffice.report())
}
}
println("tickets issued: ${Ticket.issued}")
}
Tất cả bài học trong Lập trình hướng đối tượng
1Lớp và đối tượng
Làm việc với tệpĐịnh nghĩa lớpHàm khởi tạo chínhKhối init và kiểm tra tính hợp lệHàm khởi tạo phụÔn tập: thẻ thư viện4Kế thừa
Lớp mở và lớp conGhi đè thành viênsuper và hàm khởi tạoLớp trừu tượngÔn tập: Danh bạ nhân viên2Thuộc tính và tính đóng gói
Trình truy cập tùy chỉnhBộ sửa đổi phạm vi truy cậpSetter riêng tưlazy và lateinitÔn tập: tài khoản ngân hàng5Giao diện
Khai báo giao diệnPhương thức mặc địnhNhiều giao diệnGiao diện như kiểu dữ liệuÔn tập: Phương thức thanh toán3Đối tượng và đối tượng đồng hành
Khai báo đối tượngĐối tượng đồng hànhHằng số với constBiểu thức đối tượngÔn tập: Phòng bán véTự luyện tập: Playground Kotlin