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

การประกาศ Data Class

คลาสโมเดลแบบกระชับ

การประกาศ Data Class เป็นบทเรียน Kotlin Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Kotlin Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Kotlin Academy มีบทเรียนทั้งหมด 4 บทเรียน

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

คลาสจำนวนมากมีไว้เพียงเพื่อรวมค่าบางอย่างไว้ด้วยกัน เช่น ผู้ใช้ จุด และผลลัพธ์

Kotlin มี คลาสข้อมูล ซึ่งเป็นวิธีแบบกระชับในการประกาศคลาสแบบจำลองเหล่านี้ พร้อมพฤติกรรมจำนวนมากที่มีให้โดยอัตโนมัติ

การประกาศคลาสข้อมูล

เพิ่มคีย์เวิร์ด data ไว้หน้า class และระบุคุณสมบัติในตัวสร้าง

บรรทัดเดียวนี้จะมอบแบบจำลองที่มีความสามารถครบถ้วนให้คุณ

data class User(val name: String, val age: Int)

fun main() {
    val u = User("Alice", 30)
    println(u.name)
    println(u.age)
}

toString ที่มีให้โดยอัตโนมัติ

คลาสข้อมูลจะสร้าง toString() ที่อ่านง่ายให้โดยอัตโนมัติ การพิมพ์วัตถุจะแสดงชื่อคลาสและค่าของคุณสมบัติ

ลองเปรียบเทียบกับคลาสทั่วไป ซึ่งจะแสดงค่าแฮชที่อ่านไม่เข้าใจ

data class User(val name: String, val age: Int)

fun main() {
    val u = User("Bob", 25)
    println(u)
}

ต้องประกาศคุณสมบัติ

คลาสข้อมูลต้องประกาศคุณสมบัติอย่างน้อยหนึ่งรายการในตัวสร้างหลัก

พารามิเตอร์แต่ละรายการควรเป็น val หรือ var เพื่อให้กลายเป็นคุณสมบัติที่ฟังก์ชันซึ่งสร้างขึ้นโดยอัตโนมัติสามารถใช้งานได้

data class Point(val x: Int, val y: Int)

fun main() {
    val p = Point(3, 4)
    println(p)
}

คุณสมบัติแบบอ่านอย่างเดียวและเปลี่ยนแปลงได้

ใช้ val สำหรับคุณสมบัติแบบอ่านอย่างเดียว และใช้ var สำหรับคุณสมบัติที่เปลี่ยนแปลงได้

โดยทั่วไปมักเลือกใช้คลาสข้อมูลที่ไม่เปลี่ยนแปลง เพราะทำความเข้าใจได้ง่ายกว่า

data class Counter(var count: Int)

fun main() {
    val c = Counter(0)
    c.count = 5
    println(c)
}

ค่าเริ่มต้นของพารามิเตอร์

เช่นเดียวกับตัวสร้างทั่วไป คลาสข้อมูลสามารถมีค่าเริ่มต้นได้

วิธีนี้ช่วยให้ผู้เรียกละเว้นพารามิเตอร์ที่ไม่จำเป็นต้องกำหนดค่าได้

data class User(val name: String, val active: Boolean = true)

fun main() {
    val u = User("Mia")
    println(u)
}

อาร์กิวเมนต์แบบมีชื่อ

ใช้คลาสข้อมูลร่วมกับอาร์กิวเมนต์แบบมีชื่อ เพื่อให้การสร้างวัตถุชัดเจนและอธิบายตัวเองได้

วิธีนี้มีประโยชน์เป็นพิเศษเมื่อคุณสมบัติหลายรายการมีชนิดเดียวกัน

data class Rect(val width: Int, val height: Int)

fun main() {
    val r = Rect(width = 10, height = 5)
    println(r)
}

การเพิ่มเมธอด

คลาสข้อมูลยังสามารถมีส่วนเนื้อความพร้อมฟังก์ชันและคุณสมบัติที่คำนวณได้ของตนเอง

ฟังก์ชันที่สร้างขึ้นโดยอัตโนมัติจะอยู่ร่วมกับสิ่งที่คุณเพิ่มเข้าไป

data class Circle(val radius: Double) {
    fun area(): Double = 3.14159 * radius * radius
}

fun main() {
    val c = Circle(2.0)
    println(c.area())
}

คุณสมบายนอกตัวสร้าง

ฟังก์ชันที่สร้างขึ้นโดยอัตโนมัติจะใช้เฉพาะคุณสมบัติในตัวสร้างหลักเท่านั้น

คุณสมบัติที่ประกาศในส่วนเนื้อความยังเป็นส่วนหนึ่งของวัตถุ แต่จะถูกละเว้นโดย toString, equals และฟังก์ชันอื่น ๆ ที่เกี่ยวข้อง

data class User(val name: String) {
    var nickname: String = ""
}

fun main() {
    val u = User("Alex")
    u.nickname = "Al"
    println(u) // nickname not shown
    println(u.nickname)
}

ควรใช้คลาสข้อมูลเมื่อใด

เลือกใช้คลาสข้อมูลเมื่อวัตถุมีหน้าที่หลักในการเก็บค่า:

  • วัตถุถ่ายโอนข้อมูลและแบบจำลองส่วนติดต่อโปรแกรมประยุกต์
  • พิกัด ช่วงค่า และผลลัพธ์
  • ชุดค่าการกำหนดค่า

หลีกเลี่ยงการใช้คลาสข้อมูลกับคลาสที่สร้างขึ้นโดยเน้นพฤติกรรมซับซ้อนหรือการสืบทอด

สรุปรวม

คลาสข้อมูลคือการประกาศแบบจำลองที่กระชับ:

  • เติม data นำหน้าและระบุคุณสมบัติ
  • ได้รับ toString, equals, hashCode และ copy โดยอัตโนมัติ
  • รองรับค่าเริ่มต้น อาร์กิวเมนต์แบบมีชื่อ และเมธอดเพิ่มเติม
data class Book(val title: String, val pages: Int = 0)

fun main() {
    val b = Book(title = "Kotlin", pages = 300)
    println(b)
}

ตรวจสอบความเข้าใจ

ทดสอบความเข้าใจของคุณเกี่ยวกับการประกาศคลาสข้อมูล

ทบทวน

คุณได้เรียนรู้วิธีประกาศคลาสข้อมูล:

  • คีย์เวิร์ด data จะสร้างฟังก์ชันมาตรฐาน
  • คุณสมบัติของตัวสร้างเป็นตัวกำหนดพฤติกรรมที่สร้างขึ้น
  • ค่าเริ่มต้นและอาร์กิวเมนต์แบบมีชื่อทำให้คลาสข้อมูลมีความยืดหยุ่น

ถัดไป คุณจะได้สำรวจฟังก์ชัน copy และ equals ที่สร้างขึ้นในรายละเอียด

คำถามที่พบบ่อย

บทเรียน “การประกาศ Data Class” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การประกาศ Data Class” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Kotlin Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Kotlin Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การประกาศ Data Class”

คลาสโมเดลแบบกระชับ คุณปฏิบัติ Kotlin Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Kotlin Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Kotlin Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “การประกาศ Data Class” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Kotlin Academy นี้ได้ไหม

ได้ บทเรียน Kotlin Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. การประกาศ Data Class
  2. copy และ equals
  3. การประกาศแบบแยกโครงสร้าง
  4. Data Class ในคอลเลกชัน
← กลับไปที่ Kotlin Academy