Please enable JavaScript.
Coggle requires JavaScript to display documents.
สรุป Concept OOP (Access Modifiers (public (ตัวแปรสามารถเข้าถึงได้โดยโปรแก…
สรุป Concept OOP
Access Modifiers
เมื่อเราพูดเกี่ยวกับ Encapsulation มันมักจะเกี่ยวข้องกับการกำหนดการเข้าถึง ประเภทข้อมูลและตัวแปรต่างๆ นั้นจะมีระดับการเข้าถึง ซึ่งเป็นสิ่งที่ใช้บอกว่ามันจะมีขอบเขตในการใช้งานของโปรแกรมส่วนนี้หรือส่วนอื่นด้วยหรือไม่ ตัวกำหนดการเข้าถึงมักจะใช้กับออบเจ็คใน Namespace หรือคลาส นี่เป็นรายการของตัวกำหนดการเข้าถึงในภาษา C#
public
ตัวแปรสามารถเข้าถึงได้โดยโปรแกรมในส่วนเดียวกัน หรือจากโปรแกรมในส่วนอื่นๆ เช่น อยู่คนละ namespace หรือไฟล์
protected
ตัวแปรสามารถเข้าถึงได้โดยคลาสเดียวกันหรือ struct เดียวกัน หรือในคลาสที่ได้รับการถ่ายทอด (inherit) มายัง
-
internal
ตัวแปรสามารถเข้าถึงได้โดยโปรแกรมเดียวกันเท่านั้น หรือในคลาสเดียวกัน ไม่สามารถเข้าถึงจากภายนอกคลาสได้
-
-
Encapsulation
Encapsulation (คุณสมบัติการห่อหุ้ม) เป็นคุณสมบัติหนึ่งของการเขียนโปรแกรมเชิงวัตถุ ซึ่งเป็นการกำหนดความสามารถในการเข้าถึงสมาชิกภายในคลาส ไม่ว่าทั้งจากภายนอกและภายในคลาสก็ตาม มันถูกใช้เพื่อทำให้ข้อมูลภายในเป็นความลับและมีความปลอดภัย และง่ายต่อการเขียนโปรแกรม
เป็นแนวคิดที่ได้มาจากในชีวิตจริง ในการเขียนโปรแกรมเชิงวัตถุเรามองทุกอย่างเป็นเหมือนออบเจ็คในโลกจริง ยกตัวอย่างเช่น เมื่อคุณต้องการซื้อตั๋วรถไฟฟ้าที่เครื่องจำหน่ายตั๋วอัตโนมัติ คุณจะต้องใส่เงินเข้าไปในเครื่องและเครื่องจะส่งตั๋วให้กับคุณ ในการทำงานที่จะได้ตั๋วมาให้คุณนั้นมีการทำงานภายในซ่อนอยู่ สิ่งเหล่านั้นเป็นสิ่งที่ถูกปกปิดหรือเราเรียกว่า Encapsulation มันไม่จำเป็นที่คุณจะต้องทราบว่าเครื่องนี้ทำงานยังไง แต่สิ่งที่คุณจะต้องรู้คือการใช้งานเครื่องนี้เพื่อที่จะซื้อตั๋ว
-
ความรู้เกี่ยวกับ OOP
เนื่องจากหลักการเขียนโปรแกรมเชิงวัตถุเป็นแนวคิดแบบใหม่ ดังนั้น การทำงานหลาย ๆ ส่วนของการเขียนโปรแกรมแบบนี้อาจจะยังไม่เป็นที่คุ้นเคยมากนัก จึงจำเป็นที่ผู้ศึกษาต้องทำความเข้าใจการทำงานของแนวคิดนี้ได้ดียิ่งขึ้น ข้อควรรู้เบื้องต้นเกี่ยวกับ OOP มีดังนี้
การเชื่อมต่อ (Interface)
อินเตอร์เฟส (Interface) หมายถึง การเชื่อมต่อ ถ้าเป็นการเชื่อมต่อระหว่างผู้ใช้กับคอมพิวเตอร์ จะเรียกการเชื่อมต่อนั้นว่า ยูสเซอร์อินเตอร์เฟส (User Interface) แต่ในการเขียนโปรแกรมเชิงวัตถุ การเชื่อมต่อยังรวมไปถึงวัตถุ (Object) เพราะในวัตถุจะต้องมีอินเตอร์เฟส อันเป็นส่วนที่วัตถุนั้น ๆ
-
-
-
ข้อความรู้เกี่ยวกับ OOP
เนื่องจากหลักการเขียนโปรแกรมเชิงวัตถุเป็นแนวคิดแบบใหม่ ดังนั้น การทำงานหลาย ๆ ส่วนของการเขียนโปรแกรมแบบนี้อาจจะยังไม่เป็นที่คุ้นเคยมากนัก จึงจำเป็นที่ผู้ศึกษาต้องทำความเข้าใจการทำงานของแนวคิดนี้ได้ดียิ่งขึ้น ข้อควรรู้เบื้องต้นเกี่ยวกับ OOP มีดังนี้
การเชื่อมต่อ (Interface)
อินเตอร์เฟส (Interface) หมายถึง การเชื่อมต่อ ถ้าเป็นการเชื่อมต่อระหว่างผู้ใช้กับคอมพิวเตอร์ จะเรียกการเชื่อมต่อนั้นว่า ยูสเซอร์อินเตอร์เฟส (User Interface) แต่ในการเขียนโปรแกรมเชิงวัตถุ การเชื่อมต่อยังรวมไปถึงวัตถุ (Object) เพราะในวัตถุจะต้องมีอินเตอร์เฟส อันเป็นส่วนที่วัตถุนั้น ๆ จะให้บริการหรือเป็นส่วนที่บอกว่าวัตถุนั้น ๆ สามารถทำอะไรได้บ้าง ซึ่งบางครั้งเรียกว่า เมธทอด (Method)
ข้อดีของการมีอินเตอร์เฟส ก็คือ การเปลี่ยนแปลงที่เกิดขึ้นภายในวัตถุจะไม่กระทบต่ออินเตอร์เฟส ดังนั้น ภายในวัตถุผู้เขียนคำสั่งสามารถดัดแปลง แก้ไข หรือเพิ่มเติมได้ตลอดเวลา นอกจากนี้ ภายในวัตถุยังสามารถเก็บค่าต่าง ๆได้อีกด้วย
-
-
-
แนวคิดแบบ OOP
OOP ก็คือ “ธรรมชาติของวัตถุ” หมายความว่า OOP จะมองสิ่งแต่ละสิ่งถือเป็น “วัตถุชิ้นหนึ่ง” (Object) มันจะมีสีแดงหรือสีเขียว ยาวหรือสั้น มันก็คือวัตถุชิ้นหนึ่งเหมือนกัน และเราสามารถกำหนดประเภทหรือคลาสให้กับวัตถุเหล่านั้นได้นอกจากนี้ เมื่อ OOP มองทุกสิ่งถือเป็นวัตถุชิ้นหนึ่งแล้ว ยังสามารถคิดต่อไปอีกว่า “วัตถุแต่ละอย่างนั้น ต่างก็มีลักษณะและวิธีการใช้งานเป็นของตัวเอง”
-
Overriding Super Class
ในการสืบทอดจาก super class มายัง delivered class นั้น delivered class ยังสามารถ override การทำงานของเมธอดใน super class ได้ โดยการ override เมธอดในภาษา Java นั้นจะใช้คำสั่ง Override นำหน้าเมธอดที่ต้องการ
คำสั่ง Super
นอกจากคำสั่ง this ที่เป็นคำสั่งบอกการเข้าถึงสมาชิกในคบาสปัจจุบันแล้ว คุณยังสามารถเข้าถึงสมาชิกหรือ constructor ของ super class ได้โดยการใช้คำสั่ง super มันใช้กับคลาสหรือเมธอดที่ถูก Override มาดูตัวอย่างการใช้คำสั่ง super ในภาษา Java
Inheritance
เป็นคุณสมบัติในการเขียนโปรแกรมเชิงวัตถุที่เรียกว่าคุณสมบัติการสืบทอด โดยที่คลาสสามารถสืบทอดสมาชิกของมันจากคลาสหลัก (super class) ไปยังคลาสย่อย (delivered class) โดยการสืบทอดในภาษา Java นั้นสมาชิกทั้งหมดจะถูกสืบทอดไปยังคลาสย่อย ยกเว้นสมาชิกที่มีระดับการเข้าถึงเป็น private และ constructor ของมัน
-