0Pricing
Android Academy · บทเรียน

คลาสข้อมูล

คลาสกระชับสำหรับเก็บข้อมูล

คลาสข้อมูล เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ประกาศฟังก์ชัน
  2. คลาสและคุณสมบัติ
  3. คอนสตรักเตอร์และ init
  4. คลาสข้อมูล
← กลับไปที่ Android Academy