# การใช้งาน set and get function และคอนเซ็ปต์ OOP ในภาษา Scala อย่างง่ายดาย
การเขียนโปรแกรมมีการพัฒนาไปอย่างมาก คอนเซ็ปต์ Object-Oriented Programming (OOP) ได้กลายเป็นวิธีการพัฒนาซอฟต์แวร์ที่สำคัญ ข้อดีของ OOP คือช่วยให้โค้ดเป็นระเบียบ มีโครงสร้างที่ชัดเจนและสามารถนำไปใช้ซ้ำได้ ใน Scala, ภาษาโปรแกรมที่บรรจุคุณสมบัติทั้งของโปรแกรมแบบฟังก์ชัน (Functional Programming) และโปรแกรมแบบวัตถุ (OOP) นี้ การใช้งาน set และ get function เป็นเรื่องสำคัญในการควบคุมการเข้าถึงตัวแปรใน class
ใน Scala, `getter` และ `setter` เป็นวิธีการควบคุมการเข้าถึงตัวแปรใน object. `getter` เป็น function ที่ใช้ในการอ่านค่าตัวแปร ในขณะที่ `setter` เป็น function ที่ใช้ในการปรับปรุงค่าตัวแปรเมื่อจำเป็น
ตัวอย่างที่ 1: การสร้าง Class ที่มี Get และ Set
class Student(private var _name: String) {
def name: String = _name // Getter
def name_= (newValue: String): Unit = _name = newValue // Setter
}
val student = new Student("Somchai")
println(student.name) // การเรียกใช้ Getter
student.name = "Somsak" // การเรียกใช้ Setter
println(student.name)
ในตัวอย่างนี้, `_name` คือตัวแปรที่เราต้องการจะเก็บใน class `Student`. โดยปกติ, เราไม่ต้องการให้ตัวแปรนี้ถูกเข้าถึงโดยตรงจากนอก class, เพราะการทำเช่นนั้นอาจทำให้ระบบของเราไม่มีความปลอดภัย ดังนั้น เราจึงใช้ get เเละ set function.
ตัวอย่างที่ 2: Inheritance และ Overriding Get/Set functions
class Person(var name: String)
class Employee(name: String, var salary: Double) extends Person(name) {
def salary_= (newValue: Double): Unit = {
if(newValue > 0) salary = newValue
else println("Salary must be positive.")
}
}
val emp = new Employee("Narong", 30000)
println(emp.name)
println(emp.salary)
emp.salary = -5000 // ไม่สำเร็จ เพราะไม่ผ่านเงื่อนไขใน Setter
emp.salary = 35000 // สำเร็จ
println(emp.salary)
ตัวอย่างนี้แสดงถึงการใช้ OOP concept เช่น inheritance และการ override get/set function. `Employee` รับชื่อและเงินเดือนค่าเริ่มแรก และมีโค้ดหลักการกำหนดเงินเดือนที่ไม่อนุญาตให้เงินเดือนเป็นค่าลบ.
ตัวอย่างที่ 3: Case Class และ Immutable Objects
case class Account(id: Int, var balance: Double) {
def deposit(amount: Double): Unit = {
if(amount > 0) balance += amount
}
def withdraw(amount: Double): Unit = {
if(amount > 0 && amount <= balance) balance -= amount
}
}
val acc = Account(1, 1000.0)
println(acc.balance)
acc.deposit(500)
println(acc.balance)
acc.withdraw(300)
println(acc.balance)
ใน Scala, `case class` มักใช้สำหรับสร้าง object ที่ไม่เปลี่ยนแปลง (immutable). แต่ในตัวอย่างนี้, เรามี `balance` เป็นตัวแปรที่สามารถเปลี่ยนแปลงได้ ซึ่งเราจัดการด้วย method ที่ชัดเจนสำหรับการฝากและถอนเงิน.
ธุรกิจธนาคารออนไลน์ เป็นตัวอย่างที่ดีของการใช้ get และ set ใน Scala. โดยทางธนาคารสามารถป้องกันการเข้าถึงหรือการเปลี่ยนแปลงค่าตัวแปรบัญชี์ลูกค้าโดยไม่ผ่าน method ที่ถูกต้อง และนี่ก็เป็นสิ่งสำคัญที่ช่วยรักษาความปลอดภัยเชิงข้อมูลและทรัพย์สินของลูกค้า.
การเรียนรู้และฝึกฝนการเขียนโปรแกรมที่ EPT จะช่วยให้คุณเข้าใจและสามารถนำความรู้เหล่านี้ไปประยุกต์ใช้กับโลกจริงได้อย่างมีประสิทธิภาพ. ประตูแห่งโอกาสในโลกของการพัฒนาซอฟต์แวร์เปิดกว้างสำหรับทุกคนที่มีความพร้อมและความเข้าใจที่ถูกต้องในองค์ประกอบสำคัญเช่นนี้. ตั้งใจเรียน ตั้งใจฝึกฝน และคุณจะเห็นผลลัพธ์ที่น่าพึงพอใจอย่างแน่นอน.
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM