Properties
กวินธิดา สุมาลี 650710822
Properties คือ สมาชิกของคลาสที่ทำให้สามารถอ่านหรือเขียนข้อมูลให้กับตัวแปรในคลาสได้ยืดหยุ่นและซับซ้อนขึ้น โดยภายใน Property จะมีเมธอดอยู่สองแบบคือ เมธอด get จะใช้ในการอ่านค่าของตัวแปรหรือเรียกใช้งานเมธอดอื่นภายในคลาส และเมธอด set เป็นเมธอดสำหรับกำหนดค่าจากภายนอกคลาสให้กับตัวแปรผ่าน Property ดังนั้นการใช้ Property จะมีประโยชน์ช่วยในเรื่องของความปลอดภัยและความยืดหยุ่นของการใช้คลาสตัวแปรในคลาสจากภายนอก
Properties ใน C# :
ฟิลด์ที่เป็น private จะไม่สามารถเข้าถึงได้โดยตรงจากคลาสอื่นได้ ซึ่งช่วยรักษาความปลอดภัยของข้อมูลภายในคลาส แต่ถ้าเราอยากเข้าถึงหรือปรับเปลี่ยนค่าของฟิลด์ใน private ตัว Properties จะทำหน้าที่เป็น ตัวกลาง ว่าเราจะให้เข้าถึงค่าของฟิลด์นั้นได้อย่างไร
สามารถเป็นแบบอ่านอย่างเดียว (read-only) หรือเขียนอย่างเดียว (write-only)
ตัวเข้าถึง (accessors) ที่ใช้สำหรับการตั้งค่า (set) หรือดึงค่า (get)
Example
ฟิลด์จะใช้ตัวอักษรขึ้นต้นด้วยตัวเล็ก แต่ Properties จะขึ้นต้นด้วยตัวใหญ่
ส่วนของ get { return name; } คือการส่งค่าออกไป หรือเป็นการดึงค่าออกไปใช้ โดยไม่ต้องเข้าถึงฟิลด์โดยตรง
ส่วนของ set { name = value; } คือการตั้งค่าให้ Name เป็นค่าตามที่ value กำหนด ถ้าตามในโค้ดก็จะเป็น Peter
Automatic Properties
เป็นการใช้วิธี short-hand ไม่จำเป็นต้องกำหนดฟิลด์ให้กับ property เขียนแค่ get และ set จะช่วยลดความซับซ้อนของโค้ดและทำให้เขียนได้ง่ายขึ้น
เปรียบเทียบ Properties ในภาษา C# กับภาษา Java , C , Python
เนื่องจาก Properties ของ C# ไม่มีใน Java , C , Python แต่เนื่องจาก Properties มีการเข้าถึงแบบการใช้ get and set ซึ่ง Java ก็จะมีการใช้ getter and setter method ส่วนของ Python ก็จะมีการใช้ method property() ที่มีการใช้ getter and setter เหมือนกัน แต่ในส่วนของ C นั้น ไม่มีการใช้ getter and setter แต่สามารถใช้ Pointer ในการเข้าถึงและเปลี่ยนแปลงข้อมูล คล้ายกับ getter and setter
Output
สรุปความแตกต่าง C# , Java , Python , C
เข้าถึงและเปลี่ยนค่าฟิลด์ได้โดยการใช้ Properties ที่มี getter และ setter
ไม่มีแนวคิดของ Properties แต่สามารถทำโดยการใช้ getter และ setter method
ใช้ property() method ในการ getter และ setter
ใช้ pointer ในการทำแนวคิดรูปแบบเดียวกับ Properties
Video Presentation
-
Presentation
Reference
ใช้ 4 เว็ปนี้ในการศึกษาความหมาย การทำงาน และโค้ดของ Properties
ใช้ในการศึกษา getter setter ของ Java
ใช้ในการศึกษา property() method ของ python
ใช้ในการศึกษา pointers ของ C
Last updated