คุณสมบัติและเมธอดของ Enum
เพิ่มพฤติกรรม
คุณสมบัติและเมธอดของ Enum เป็นบทเรียน Kotlin Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Kotlin Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Kotlin Academy มีบทเรียนทั้งหมด 4 บทเรียน
ชนิดแจกแจงค่าสามารถเก็บข้อมูลได้
ค่าคงที่ของชนิดแจกแจงค่าสามารถมี พร็อพเพอร์ตี ได้ ให้ประกาศตัวสร้างในคลาสแจกแจงค่า แล้วส่งค่าเมื่อระบุค่าคงที่แต่ละค่า
enum class Coin(val cents: Int) {
PENNY(1), NICKEL(5), DIME(10)
}
fun main() {
println(Coin.DIME.cents)
}พารามิเตอร์ของตัวสร้าง
ค่าที่อยู่ในวงเล็บหลังค่าคงที่แต่ละค่าคืออาร์กิวเมนต์ของตัวสร้างชนิดแจกแจงค่า ค่าเหล่านี้จะกลายเป็นพร็อพเพอร์ตีแบบอ่านอย่างเดียวของค่าคงที่นั้น
enum class Planet(val gravity: Double) {
EARTH(9.8), MOON(1.6)
}
fun main() {
println(Planet.MOON.gravity)
}หลายพร็อพเพอร์ตี
ชนิดแจกแจงค่าสามารถประกาศพร็อพเพอร์ตีหลายรายการพร้อมกันได้
enum class Fruit(val color: String, val calories: Int) {
APPLE("red", 95),
BANANA("yellow", 105)
}
fun main() {
val f = Fruit.BANANA
println("${f.color} ${f.calories}")
}การเพิ่มเมธอด
คุณสามารถประกาศฟังก์ชันทั่วไปในเนื้อหาของชนิดแจกแจงค่าได้ ค่าคงที่ทุกค่าจะใช้ฟังก์ชันเหล่านั้นร่วมกัน
enum class Temp(val celsius: Int) {
COLD(5), WARM(25);
fun toFahrenheit(): Int = celsius * 9 / 5 + 32
}
fun main() {
println(Temp.WARM.toFahrenheit())
}กฎของอัฒภาค
เมื่อชนิดแจกแจงค่ามีสมาชิกนอกเหนือจากค่าคงที่ เช่น เมธอดหรือพร็อพเพอร์ตี คุณต้องใส่ อัฒภาค หลังค่าคงที่สุดท้าย
enum class Op {
ADD, SUB;
fun describe() = "Operation: $name"
}
fun main() {
println(Op.ADD.describe())
}เมธอดนามธรรมแยกตามค่าคงที่
ชนิดแจกแจงค่าสามารถประกาศเมธอดนามธรรมที่ค่าคงที่แต่ละค่าจะเขียนทับได้ ทำให้ค่าคงที่แต่ละค่ามีพฤติกรรมเป็นของตนเอง
enum class Math {
PLUS { override fun apply(a: Int, b: Int) = a + b },
TIMES { override fun apply(a: Int, b: Int) = a * b };
abstract fun apply(a: Int, b: Int): Int
}
fun main() {
println(Math.TIMES.apply(3, 4))
}พร็อพเพอร์ตีที่คำนวณค่า
ตัวอ่านค่าของพร็อพเพอร์ตีสามารถคำนวณค่าจากข้อมูลของค่าคงที่นั้นได้
enum class Account(val balance: Int) {
SAVINGS(1000), CHECKING(50);
val isRich: Boolean get() = balance > 500
}
fun main() {
println(Account.SAVINGS.isRich)
}การรวมข้อมูลกับพฤติกรรม
การมีทั้งพร็อพเพอร์ตีและเมธอดทำให้ชนิดแจกแจงค่าสามารถจำลองขอบเขตปิดที่มีรายละเอียดครบถ้วนได้
enum class Shape(val sides: Int) {
TRIANGLE(3), SQUARE(4);
fun describe() = "$name has $sides sides"
}
fun main() {
println(Shape.SQUARE.describe())
}การใช้พร็อพเพอร์ตีในตรรกะ
พร็อพเพอร์ตีของค่าคงที่มีประโยชน์ในการคำนวณและเงื่อนไขต่าง ๆ
enum class Tier(val discount: Int) {
BRONZE(5), GOLD(20)
}
fun price(base: Int, tier: Tier) = base - base * tier.discount / 100
fun main() {
println(price(100, Tier.GOLD))
}ค่าเริ่มต้นของพร็อพเพอร์ตี
ตัวสร้างของชนิดแจกแจงค่ารองรับค่าเริ่มต้นของพารามิเตอร์เช่นเดียวกับตัวสร้างทั่วไป
enum class Role(val canEdit: Boolean = false) {
VIEWER, EDITOR(true)
}
fun main() {
println(Role.VIEWER.canEdit)
println(Role.EDITOR.canEdit)
}แบบจำลองฉบับสมบูรณ์
ในตัวอย่างนี้ ชนิดแจกแจงค่าจำลองสถานะ HTTP โดยมีทั้งข้อมูลและพฤติกรรม
enum class Http(val code: Int) {
OK(200), NOT_FOUND(404);
fun isError() = code >= 400
}
fun main() {
println(Http.NOT_FOUND.isError())
}ตรวจสอบความเข้าใจ
ตรวจสอบความเข้าใจของคุณเกี่ยวกับพร็อพเพอร์ตีและเมธอดของชนิดแจกแจงค่า
สรุป
คุณได้เรียนรู้ว่าชนิดแจกแจงค่าสามารถมี พฤติกรรม ได้:
- เพิ่มตัวสร้างเพื่อมอบพร็อพเพอร์ตีให้ค่าคงที่
- ประกาศเมธอดที่ใช้ร่วมกัน โดยใส่อัฒภาคหลังค่าคงที่
- เมธอดนามธรรมทำให้ค่าคงที่แต่ละค่ากำหนดพฤติกรรมของตนเองได้
- พร็อพเพอร์ตีที่คำนวณค่าและพร็อพเพอร์ตีที่มีค่าเริ่มต้นทำงานได้ตามปกติ
enum class Coin(val cents: Int) {
PENNY(1), DIME(10);
fun double() = cents * 2
}
fun main() {
println(Coin.DIME.double())
}คำถามที่พบบ่อย
บทเรียน “คุณสมบัติและเมธอดของ Enum” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “คุณสมบัติและเมธอดของ Enum” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Kotlin Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Kotlin Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “คุณสมบัติและเมธอดของ Enum”
เพิ่มพฤติกรรม คุณปฏิบัติ Kotlin Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Kotlin Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Kotlin Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “คุณสมบัติและเมธอดของ Enum” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Kotlin Academy นี้ได้ไหม
ได้ บทเรียน Kotlin Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การกำหนด Enum
- คุณสมบัติและเมธอดของ Enum
- Enum กับ when
- ค่าและลำดับของ Enum