คลาสข้อมูล
คลาสกระชับสำหรับเก็บข้อมูล
คลาสข้อมูล เป็นบทเรียน Android Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Android Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Android Academy มีบทเรียนทั้งหมด 4 บทเรียน
คลาสข้อมูลคืออะไร
คลาสข้อมูลคือคลาสที่สร้างขึ้นเพื่อเก็บข้อมูล Kotlin จะสร้างเมธอดที่มีประโยชน์ให้โดยอัตโนมัติ
คุณประกาศคลาสข้อมูลโดยเขียน data ไว้หน้า class
การประกาศคลาสข้อมูล
คลาสข้อมูลต้องมีพารามิเตอร์อย่างน้อยหนึ่งตัวในตัวสร้างหลัก และแต่ละตัวต้องกำกับด้วย val หรือ var
ตัวอย่างนี้คือ User ที่เก็บชื่อและอายุ
data class User(val name: String, val age: Int)
fun main() {
val u = User("Ada", 30)
println(u.name)
}toString ที่อ่านเข้าใจง่าย
คลาสทั่วไปจะแสดงที่อยู่ที่อ่านไม่เข้าใจ ส่วนคลาสข้อมูลจะสร้าง toString ที่ชัดเจนและแสดงพร็อพเพอร์ตีแต่ละรายการ
วิธีนี้ช่วยให้การแก้ไขข้อผิดพลาดทำได้ง่ายขึ้นมาก
data class User(val name: String, val age: Int)
fun main() {
val u = User("Ada", 30)
println(u)
}การเปรียบเทียบด้วย equals
คลาสข้อมูลจะเปรียบเทียบจากเนื้อหา ไม่ใช่เอกลักษณ์ ออบเจ็กต์สองตัวที่มีค่าพร็อพเพอร์ตีเหมือนกันจะถือว่าเท่ากันเมื่อใช้ ==
คลาสทั่วไปจะถือว่าออบเจ็กต์ทั้งสองแตกต่างกัน
data class Point(val x: Int, val y: Int)
fun main() {
val a = Point(1, 2)
val b = Point(1, 2)
println(a == b)
}ฟังก์ชัน copy
ฟังก์ชัน copy ที่สร้างขึ้นจะสร้างออบเจ็กต์ใหม่โดยอ้างอิงจากออบเจ็กต์เดิม คุณสามารถเปลี่ยนเฉพาะพร็อพเพอร์ตีที่ระบุได้
ออบเจ็กต์เดิมจะไม่ถูกแก้ไข
data class User(val name: String, val age: Int)
fun main() {
val u = User("Ada", 30)
val older = u.copy(age = 31)
println(older)
}การแยกโครงสร้าง
คลาสข้อมูลรองรับการแยกโครงสร้าง ซึ่งเป็นการแยกพร็อพเพอร์ตีออกเป็นตัวแปรต่าง ๆ ภายในบรรทัดเดียว
ลำดับจะเป็นไปตามตัวสร้าง
data class User(val name: String, val age: Int)
fun main() {
val (name, age) = User("Sam", 25)
println(name + " " + age)
}ค่าเริ่มต้นก็ใช้ได้เช่นกัน
เช่นเดียวกับตัวสร้างทั่วไป พารามิเตอร์ของคลาสข้อมูลสามารถมีค่าเริ่มต้นได้
ทำให้ผู้เรียกละเว้นฟิลด์ที่ไม่จำเป็นต้องใช้ได้
data class User(val name: String, val active: Boolean = true)
fun main() {
val u = User("Lee")
println(u)
}hashCode สำหรับคอลเลกชัน
คลาสข้อมูลจะสร้าง hashCode ให้ด้วย จึงทำงานได้อย่างถูกต้องเมื่อใช้เป็นคีย์ใน Set หรือ Map
ออบเจ็กต์ที่เท่ากันจะสร้างค่าแฮชเดียวกัน จึงตรวจพบรายการซ้ำได้
data class Point(val x: Int, val y: Int)
fun main() {
val set = setOf(Point(1, 1), Point(1, 1))
println(set.size)
}ควรใช้คลาสข้อมูลเมื่อใด
เลือกใช้คลาสข้อมูลเมื่อออบเจ็กต์มีหน้าที่หลักในการเก็บค่า มากกว่าการมีพฤติกรรมที่ซับซ้อน
- การตอบกลับจาก API
- สถานะส่วนติดต่อผู้ใช้ใน Android
- ระเบียนฐานข้อมูล
สำหรับออบเจ็กต์ที่มีตรรกะจำนวนมาก คลาสทั่วไปจะเหมาะกว่า
คลาสข้อมูลช่วยลดงาน
คำสำคัญ data เพียงคำเดียวจะมอบ toString, equals, hashCode, copy และการรองรับการแยกโครงสร้างให้คุณ
นั่นคือโค้ดพื้นฐานจำนวนมากที่คุณไม่ต้องเขียนหรือดูแลด้วยตนเองอีกต่อไป
คลาสข้อมูลกับคลาสทั่วไป
คลาสทั่วไปจะเปรียบเทียบจากเอกลักษณ์และแสดงการอ้างอิงหน่วยความจำ ส่วนคลาสข้อมูลจะเปรียบเทียบจากเนื้อหาและแสดงค่าของพร็อพเพอร์ตี
คำสำคัญ data เป็นสิ่งที่เปิดใช้พฤติกรรมที่สร้างขึ้นโดยอัตโนมัติเหล่านี้
class Plain(val x: Int)
data class Smart(val x: Int)
fun main() {
println(Plain(1) == Plain(1))
println(Smart(1) == Smart(1))
}ตรวจสอบความเข้าใจ
ทดสอบความเข้าใจเกี่ยวกับคลาสข้อมูลของคุณ
ทบทวน
คุณได้เรียนรู้ว่าคลาสข้อมูลจะสร้าง toString, equals, hashCode, copy และการรองรับการแยกโครงสร้างโดยอัตโนมัติ
คลาสข้อมูลเหมาะอย่างยิ่งสำหรับออบเจ็กต์ที่ใช้เก็บค่า เช่น สถานะส่วนติดต่อผู้ใช้และโมเดล API ตอนนี้คุณได้ครอบคลุมฟังก์ชัน คลาส ตัวสร้าง และคลาสข้อมูลใน Kotlin แล้ว
คำถามที่พบบ่อย
บทเรียน “คลาสข้อมูล” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “คลาสข้อมูล” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Android Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Android Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “คลาสข้อมูล”
คลาสกระชับสำหรับเก็บข้อมูล คุณปฏิบัติ Android Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Android Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Android Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “คลาสข้อมูล” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Android Academy นี้ได้ไหม
ได้ บทเรียน Android Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ