From d41bb00ffb7be4708f7027214bef66cf4a531494 Mon Sep 17 00:00:00 2001 From: haerong22 Date: Tue, 28 Feb 2023 01:43:59 +0900 Subject: [PATCH] #34 kotlin basic: enum class --- kotlin-basic/src/main/kotlin/12_enum.kt | 41 +++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 kotlin-basic/src/main/kotlin/12_enum.kt diff --git a/kotlin-basic/src/main/kotlin/12_enum.kt b/kotlin-basic/src/main/kotlin/12_enum.kt new file mode 100644 index 00000000..67aecfa5 --- /dev/null +++ b/kotlin-basic/src/main/kotlin/12_enum.kt @@ -0,0 +1,41 @@ +enum class PaymentStatus(val label: String): Payable { + UNPAID("미지급") { + override fun isPayable(): Boolean = true + }, + PAID("지급 완료") { + override fun isPayable(): Boolean = false + + }, + FAILED("지급 실패") { + override fun isPayable(): Boolean = false + + }, + REFUNDED("환불") { + override fun isPayable(): Boolean = false + }; + +} + +interface Payable { + fun isPayable(): Boolean +} + +fun main() { + + println(PaymentStatus.REFUNDED.label) + + if (PaymentStatus.UNPAID.isPayable()) { + println("결제 가능 상태") + } + + val paymentStatus = PaymentStatus.valueOf("PAID") + println(paymentStatus.label) + + if (paymentStatus == PaymentStatus.PAID) { + println("결제 완료 상태") + } + + for (status in PaymentStatus.values()) { + println("[${status.name}](${status.label}) : ${status.ordinal}") + } +} \ No newline at end of file