# การใช้งาน set and get function ในภาษา R โดยอาศัยหลักการ OOP
การเขียนโปรแกรมโดยใช้หลักการ Object-Oriented Programming (OOP) ได้ถูกนำมาใช้อย่างแพร่หลาย เพราะช่วยให้เราสามารถจัดการกับข้อมูลและฟังก์ชันที่เกี่ยวกับข้อมูลได้อย่างเป็นระเบียบและมีประสิทธิภาพ ภาษา R ซึ่งเป็นภาษาที่โดดเด่นในการวิเคราะห์ข้อมูลก็สามารถเขียนโปรแกรมได้ตามหลักการ OOP เช่นกัน หนึ่งในคุณสมบัติของ OOP คือการใช้งาน set และ get functions ซึ่งเป็นฟังก์ชันที่ช่วยให้เราสามารถเข้าถึงและเปลี่ยนค่าของตัวแปรภายใน object ได้
มาเริ่มกันที่ตัวอย่างโค้ดแรกด้วยการสร้าง class ที่เรียกว่า "Employee" ซึ่งมี property คือ `name` และ `salary` พร้อมกับ methods ในการ set และ get ค่าของ properties เหล่านั้น:
Employee <- setRefClass("Employee",
fields = list(
name = "character",
salary = "numeric"
),
methods = list(
setName = function(value) {
name <<- value
},
getName = function() {
return(name)
},
setSalary = function(value) {
salary <<- value
},
getSalary = function() {
return(salary)
}
)
)
# สร้าง object
john <- Employee$new()
john$setName("John Doe")
john$setSalary(50000)
# แสดงผล
cat("Employee Name:", john$getName(), "\n")
cat("Employee Salary:", john$getSalary())
ตัวอย่างข้างต้นแสดงให้เห็นถึงการ encapsulate ข้อมูลภายใน class และการใช้ set/get methods ในการเข้าถึงข้อมูลนั้น ๆ ทำให้คุณสามารถเพิ่มเงื่อนไขหรือ validation ต่าง ๆ เมื่อต้องการจะเปลี่ยนแปลงค่าของข้อมูลได้
การใช้ constructor ใน R เพื่อกำหนดค่าเริ่มต้นให้กับ object:
Person <- setRefClass("Person",
fields = list(
firstName = "character",
lastName = "character"
),
methods = list(
initialize = function(first_name, last_name) {
firstName <<- first_name
lastName <<- last_name
},
getFullName = function() {
return(paste(firstName, lastName))
}
)
)
# สร้าง object ด้วย constructor
peter <- Person$new(first_name = "Peter", last_name = "Parker")
# แสดงผล
cat("Full Name:", peter$getFullName())
Constructor ช่วยให้เราตั้งค่าเริ่มต้นให้กับ object ได้ทันทีหลังจากที่เราสร้างมันขึ้นมา
ตัวอย่างการใช้ inheritance ใน R เพื่อแบ่งปันคุณสมบัติจาก class หนึ่งไปยังอีก class:
Animal <- setRefClass("Animal",
fields = list(
species = "character"
),
methods = list(
setSpecies = function(value) {
species <<- value
},
getSpecies = function() {
return(species)
}
)
)
Dog <- setRefClass("Dog",
contains = "Animal",
fields = list(
name = "character"
),
methods = list(
setName = function(value) {
name <<- value
},
getName = function() {
return(name)
}
)
)
# สร้าง object
buddy <- Dog$new()
buddy$setSpecies("Canis lupus familiaris")
buddy$setName("Buddy")
# แสดงผล
cat("Dog Name:", buddy$getName(), "- Species:", buddy$getSpecies())
Inheritance มีประโยชน์ในการประหยัดเวลาและลดการซ้ำซ้อนของโค้ด จากตัวอย่างเราสร้าง class `Dog` ที่ inherit จาก class `Animal` โดยไม่ต้องเขียน methods `setSpecies` และ `getSpecies` ใหม่
การใช้งาน set/get functions ในการพัฒนาซอฟต์แวร์สามารถนำไปปรับใช้ได้หลากหลาย เช่น การสร้างระบบจัดการพนักงานที่มีฟังก์ชันการคำนวณเงินเดือน, การสร้างแอปพลิเคชันที่ต้องการจัดเก็บสถิติของผู้ใช้
ที่ EPT (Expert-Programming-Tutor) เรามุ่งมั่นที่จะส่งเสริมการศึกษาและการพัฒนาทักษะทางการเขียนโปรแกรมให้กับนักเรียนทุกคน ด้วยการให้คู่มือและบทเรียนที่ครอบคลุมทั้งทฤษฎีและปฏิบัติ, เราหวังว่าบทความนี้จะเปิดโอกาสให้คุณได้เรียนรู้และสัมผัสกับความสำคัญของ OOP ในการพัฒนาซอฟต์แวร์ หากคุณมีความสนใจที่จะเรียนรู้เพิ่มเติมและมุ่งหน้าสู่การเป็นนักพัฒนาซอฟต์แวร์ที่มีทักษะหลากหลาย เราที่ EPT ยินดีต้อนรับคุณเสมอ!
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM