Restrictions on Properties
650710824 - Jakkapan Chompat
เนื้อหา
Properties คือ :
Properties คือ สมาชิกของคลาสที่ช่วยให้การอ่าน และ เขียนข้อมูลกับตัวแปรในคลาสทำได้สะดวกขึ้น โดยทำงานผ่านเมธอดภายในคลาส
Properties ในภาษา C# :
ในภาษา C# ตัวแปรที่เรียกว่า property เป็นเมธอดพิเศษที่เรียกว่า accessors ซึ่งช่วยให้การจัดการข้อมูลทำได้ง่ายขึ้น โดยที่ property จะประกอบไปด้วยเมธอดสองประเภท ได้แก่ เมธอด
get
ใช้สำหรับการอ่านค่าของตัวแปร หรือ เรียกใช้งานเมธอดอื่นภายในคลาส และเมธอดset
ซึ่งใช้ในการกำหนดค่าจากภายนอกให้กับตัวแปรผ่าน property การใช้ property จึงช่วยเพิ่มความปลอดภัยและความสะดวกในการจัดการตัวแปรจากภายนอกคลาส
ตัวอย่างโค้ด ภาษา C# :
Restrictions on Properties ในภาษา C# :
การส่งผ่านพารามิเตอร์
ref
หรือout
ไปยัง เมธอด:
ในภาษา C# Properties ไม่สามารถส่งค่าแบบ
ref
หรือout
ไปยัง เมธอดได้ หมายความว่าเราจะไม่สามารถส่งค่าของ property ไปยัง เมธอดได้
การ Overload Properties :
ในภาษา C# การ overload properties ไม่สามารถมีเมธอด
get
หรือ เมธอดset
มากกว่า 1 ตัวสำหรับ property เดียวกันได้ ไม่งั้นจะทำให้เกิดการ error ได้
การเปลี่ยนแปลงค่าตัวแปรในเมธอด
get
accessor :
ในภาษา C# Properties ไม่ควรเปลี่ยนแปลงค่าตัวแปรใน เมธอด
get
accessor เพราะ เมธอดget
ถูกออกแบบมาสำหรับการดึงข้อมูล ไม่ใช่การแก้ไขค่าภายใน object
เปรียบเทียบกับภาษา C, Java, Python
ภาษา C :
ในภาษา C ไม่มี Properties แต่สามารถใช้ pointer เพื่อเข้าถึงค่าได้
ภาษา Java :
ในภาษา Java มีเมธอด
getter
และ เมธอดsetter
สำหรับการเข้าถึงค่าและปรับค่าของตัวแปร ที่เหมือนกับ Properties ในภาษา C#
ภาษา Python :
ในภาษา Python สามารถใช้
property
decorator เพื่อสร้าง properties ได้ และสามารถเข้าถึงค่าได้โดยตรงผ่านค่าชื่อ proprety
ตัวอย่าง
ตัวอย่าง : Restrictions on Properties ในภาษา C# :
การส่งผ่านพารามิเตอร์
ref
หรือout
ไปยัง เมธอด :
ในภาษา C# Properties ไม่สามารถส่งค่าแบบ
ref
หรือout
ไปยัง เมธอด ได้ หมายความว่าเราจะไม่สามารถส่งค่าของ property ไปยัง เมธอด ได้
ตัวอย่างโค้ด ภาษา C# :
อธิบายเพิ่มเติม :
จากตัวอย่างโค้ด property ใช้ เมธอด get
และ เมธอด set
ในการทำงาน เราเลยไม่สามารถส่งค่าแบบ ref
หรือ out
ได้ เนื่องจาก เมธอด ไม่มีพื้นที่เดียวกันในหน่วยความจำหมือนตัวแปร
การ Overload Properties :
ในภาษา C# การ overload properties ไม่สามารถมีเมธอด
get
หรือ เมธอดset
มากกว่า 1 ตัวสำหรับ property เดียวกันได้ ไม่งั้นจะทำให้เกิดการ error ได้
ตัวอย่างโค้ด ภาษา C# :
ข้อผิดพลาดตอนคอมไพล์ :
อธิบายเพิ่มเติม :
จากตัวอย่างโค้ด เกิดการ error เพราะ มีเมธอด get
มากกว่า 1 ตัวสำหรับ property เดียวกัน
การเปลี่ยนแปลงค่าตัวแปรใน เมธอด
get
accessor :
ในภาษา C# Properties ไม่ควรเปลี่ยนแปลงค่าตัวแปรใน เมธอด
get
accessor เพราะ เมธอดget
ถูกออกแบบมาสำหรับการดึงข้อมูล ไม่ใช่การแก้ไขค่าภายใน object
ตัวอย่างโค้ด ภาษา C# :
Ouput :
อธิบายเพิ่มเติม :
จากตัวอย่างโค้ด มีการเปลี่ยนค่า _number ใน เมธอด get
accessor ด้วยคำสั่ง this._number = 5; ซึ่งไม่ถูกต้อง เพราะ เมธอด get
ใช้เพื่ออ่านค่าเท่านั้น ไม่ใช่แก้ไขข้อมูลภายใน object
เปรียบเทียบภาษา C, Java, Python
ภาษา C :
ในภาษา C ไม่มี Properties แต่สามารถใช้ pointer เพื่อเข้าถึงค่าได้
ตัวอย่างโค้ด ภาษา C :
Output :
ภาษา Java :
ในภาษา Java มีเมธอด
geter
และ เมธอดsetter
สำหรับการเข้าถึงค่าและปรับค่าของตัวแปร ที่เหมือนกับ Properties ในภาษา C#
ตัวอย่างโค้ด ภาษา Java :
Output :
อธิบายเพิ่มเติม :
จากตัวอย่างโค้ด มีการสร้าง class Product พร้อมตัวแปรชื่อ title ในรูปแบบ private จากนั้นสร้าง เมธอด get
และ เมธอด set
เมธอด
get
ชื่อ getTitle ดึงค่าตัวแปร title จาก classเมธอด
set
ชื่อ setTitle กำหนดค่าให้กับตัวแปร title ภายใน class
ภาษา Python :
ในภาษา Python สามารถใช้
property
decorator เพื่อสร้าง properties ได้ และสามารถเข้าถึงค่าได้โดยตรงผ่านค่าชื่อ proprety
ตัวอย่างโค้ด ภาษา Python :
อธิบายเพิ่มเติม :
จากตัวอย่างโค้ด มีการสร้าง class C ที่มี property ชื่อว่า x ซึ่งสามารถใช้เพื่ออ่านค่า (get) และ กำหนดค่า (set) ของตัวแปร _x ได้
คลิปนำเสนอ
สไลด์นำเสนอ
แหล่งที่มาอ้างอิง
ในเว็บนี้ใช้ศึกษาความหมายของ Properties คืออะไร
ในเว็บนี้นำตัวอย่างโค้ด Properties ในภาษา C# มาใช้
ในเว็บนี้ใช้ศึกษาหลักการทำงานของ Restrictions on Properties ในภาษา C# พร้อมกับนำตัวอย่างโค้ดมาใช้
ในเว็บนี้ใช้ศึกษาหลักการทำงานของ
ref
และout
ในภาษา C#
ในเว็บนี้ใช้ศึกษาหลักการทำงานของ
Getter
และSetter
ในภาษา Java
ในเว็บนี้ใช้ศึกษาหลักการทำงานของ
property
decorator เพื่อสร้าง properties ในภาษา Python พร้อมกับนำตัวอย่างโค้ดมาใช้
ในเว็บนี้ใช้ศึกษาหลักการทำงานของ Pointers ในภาษา C พร้อมกับนำตัวอย่างโค้ดมาใช้
ในเว็บนี้ใช้ศึกษาหลักการทำงานของ เมธอด
get
และ เมธอดset
ในภาษา Java พร้อมกับนำตัวอย่างโค้ดมาใช้
Last updated