การเขียนโปรแกรมด้วยภาษา Kotlin นั้นสนุกและน่าตื่นเต้นไม่แพ้ภาษาอื่นๆ เลยครับ ภาษา Kotlin ได้รับความนิยมเป็นอย่างมากในการพัฒนาแอปพลิเคชัน Android รวมถึงการใช้งานเพื่อพัฒนาเว็บและไลบรารีต่างๆ การเข้าใจเรื่องของ class และ instance จะทำให้การเขียนโค้ดของคุณมีประสิทธิภาพและง่ายขึ้น ในบทความนี้เราจะพูดถึงประเด็นดังกล่าว พร้อมทั้งยกตัวอย่างโค้ดและกรณีการใช้งาน (use case) ในโลกจริง จะมีทั้งหมด 3 ตัวอย่างครับ
#### สร้าง Class และการสร้าง Instance
Class ใน Kotlin คือ แม่แบบการสร้างออบเจ็คที่มีลักษณะเหมือนกัน เช่น มีคุณสมบัติหรือพฤติกรรมที่คล้ายกัน การสร้าง instance คือ การทำสำเนาของ class เพื่อใช้งาน ซึ่งผลของการสำเนานี้แต่ละอันจะมีความเป็นอิสระจากกันและกัน
class Car(val brand: String, val model: String) {
fun displayDetails() {
println("Brand: $brand, Model: $model")
}
}
fun main() {
val myCar = Car("Toyota", "Corolla")
myCar.displayDetails()
}
ในตัวอย่างนี้เรามี class `Car` ที่มี properties อย่าง `brand` และ `model` รวมไปถึงฟังก์ชัน `displayDetails()` ที่ใช้แสดงรายละเอียดของรถยนต์ ส่วน `main()` คือจุดเริ่มต้นของการทำงาน ซึ่งเราสร้าง instance `myCar` ขึ้นมาจาก class `Car`
#### การใช้งาน Class พร้อมทั้ง Inheritance
ก่อนจะไปดูตัวอย่างการใช้งานต่อไป ขอเสนอคุณสมบัติหนึ่งใน Kotlin ที่เรียกว่า "inheritance" คือการที่ class หนึ่งได้กำหนดคุณลักษณะหรือพฤติกรรมจาก class อื่นและสามารถเพิ่มเติมหรือแก้ไขคุณลักษณะเหล่านั้นได้
open class Vehicle(val wheels: Int) {
open fun drive() {
println("Driving a vehicle with $wheels wheels")
}
}
class Bike : Vehicle(wheels = 2) {
override fun drive() {
println("Riding a bike with $wheels wheels")
}
}
fun main() {
val myBike = Bike()
myBike.drive()
}
ในตัวอย่างนี้ `Vehicle` คือ Class หลักที่มี `wheels` เป็น Property และ `drive()` เป็น Function ส่วน `Bike` คือ subclass ที่ Inherits ทุกอย่างจาก `Vehicle` และทำการ Override function `drive()` ให้เหมาะสมกับ context ของ `Bike`
#### ตัวอย่าง Use Case ของ Class และ Instance
ในโลกจริง เราอาจพบเห็นการใช้งาน Class และ Instance ในหลากหลายวิธี เช่น ในการจัดการระบบสำรองข้อมูล (Data Backup System) เราอาจมี Class `BackupTask` ที่แทนการทำงานของแต่ละเทสก์ในการสำรองข้อมูลและ `BackupManager` ที่จัดการเทสก์เหล่านี้
class BackupTask(val taskId: String, val data: List) {
fun executeBackup() {
println("Executing backup for task: $taskId")
// Code for backing up data
}
}
class BackupManager {
private val backupTasks = mutableListOf()
fun addTask(task: BackupTask) {
backupTasks.add(task)
}
fun performBackups() {
for (task in backupTasks) {
task.executeBackup()
}
}
}
fun main() {
val task1 = BackupTask("001", listOf("File1.txt", "File2.txt"))
val task2 = BackupTask("002", listOf("Image1.png", "Image2.png"))
val backupManager = BackupManager()
backupManager.addTask(task1)
backupManager.addTask(task2)
backupManager.performBackups()
}
ในตัวอย่างนี้เราสร้าง `BackupTask` ที่มี `taskId` และ `data` เพื่อแทนข้อมูลที่จะสำรอง และมี `executeBackup()` สำหรับทำการสำรองข้อมูลจริง `BackupManager` เก็บรายการของ `BackupTask` และมีฟังก์ชัน `performBackups()` ที่เรียก `executeBackup()` ในแต่ละเทสก์
ผ่านจากทั้ง 3 ตัวอย่างที่ได้นำเสนอไป หวังว่าทุกท่านจะเห็นภาพความสำคัญและการใช้งานของ class และ instance ในการเขียนโปรแกรม โดยเฉพาะกับภาษา Kotlin ที่ซับซ้อนและมีความยืดหยุ่นสูง เพราะการสร้างโครงสร้างของโค้ดที่ดีจะช่วยให้การพัฒนาโปรแกรมเป็นเรื่องง่ายและไม่ยุ่งยากครับ
ใน EPT เรามีหลักสูตรที่จะสอนคุณให้เข้าใจหลักการเหล่านี้ให้ลึกซึ้งและสามารถนำไปปรับใช้ได้อย่างมีประสิทธิภาพ สนใจเรียนรู้ด้านการเขียนโปรแกรม เชิญพบกับเราที่ EPT นะครับ!
*อ้างอิง: Kotlin Documentation, Official Kotlin Site, Kotlin Programming By Example by Iyan Yuliandhar & Muhammad Irham.*
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
Tag ที่น่าสนใจ: kotlin class instance object-oriented_programming inheritance code_example use_case data_backup_system oop programming_language android_development web_development backuptask backupmanager
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM