การประกาศ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การประกาศ Data Class
- copy และ equals
- การประกาศแบบแยกโครงสร้าง
- Data Class ในคอลเลกชัน