Please enable JavaScript.
Coggle requires JavaScript to display documents.
OOP 4 ด้าน - Coggle Diagram
OOP 4 ด้าน
Polymorphism
Inheritance หรือการสืบทอดคือการส่งต่อโค้ดส่วนที่เหมือนๆ กันลงไปยังคลาสลูก แล้วนำคลาสลูกไปใช้แต่ Polymorphism จะเป็นกระบวนที่ต่อเนื่องมาอีกที ด้วยการทำงานที่เหมือนกันแต่ทำให้การแสดงผลลัพธ์ที่ต่างกัน Polymorphism คือความหลายรูปแบบในที่นี้คือการสืบทอด Super Class แต่ยังคงรักษาสภาพเดิมและคุณสมบัติไว้ แต่ใน Sub Class ที่สร้างขึ้นมาใหม่นั้นจะมี Method ที่ทำให้ได้ผลลัพธ์ที่ตรงกับวัตถุประสงค์มากกว่าเป็นการเรียก Method ครั้งเดียวแต่ผลลัพธ์ที่ได้ต่างกัน
-
Encapsulation
Encapsulation คือคุณสมบัติในการปกปิดข้อมูลโดยเป็นกลไกลในการกำหนดการเข้าถึงข้อมูลในคลาสจากภายนอกเพื่อไม่ให้ออบเจ็คตภายนอกเข้าถึงข้อมูลได้อย่างอิสระ เช่น ตัวแปรออบเจ็คที่สร้างจากคลาส ในการเขียนโปรแกรมเชิงวัตถุนั้น ตัวแปร เมธอดและโค้ดการทำงานภายในจะถูกห่อหุ้มไว้ในออบเจ็ค ให้มองว่าการเขียนโปรแกรมแบบนี้เหมือนกับแคปซูลที่ทำการห่อหุ้มข้อมูลด้านใน
- สามารถจำกัดสิทธิ์ในการใช้งานแอตทริบิวต์และเมธอดได้ด้วย เช่น เว็บ reg.ssru ที่นักศึกษา อาจารย์ และเจ้าหน้าที่ของมหาวิทยาลัย จะสามารถและเข้าถึงการใช้งานได้แตกต่างกัน ตามบริบทของแต่ละบุคคล
Access specifiers
- public - ตัวแปรหรือเมธอดสามารถเข้าถึงได้จากทุกที่ในโปรแกรม
- protected - ตัวแปรหรือเมธอดสามารถเข้าถึงได้จากในคลาสเดียวกันหรือคลาสที่ได้รับการสืบทอด (Inheritance)
Access specifiers คือคำสั่งในการกำหนดการเข้าถึงที่เราใช้กับการประกาศตัวแปรภายในคลาสหรือเรียกอีกอย่างหนึงว่า Property Visibility มี Access specifier อยู่ด้วยกัน 3 แบบดังนี้
- private - ตัวแปรหรือเมธอดสามารถเข้าถึงได้จากในคลาสเดียวเท่านั้น
ซึ่ง Access specifiers เหล่านี้เป็นสิ่งที่กำหนดสำหรับการเข้าถึงข้อมูลภายในออบเจ็ค คำสั่ง private และ protected เป็นคำสั่งในการปิดปิดข้อมูล เพราะว่าเราไม่สามารถเข้าถึงสมาชิกประเภทนี้จากภายนอกของออบเจ็คได้ และ public เป็นตัวแทนในการติดต่อหรือการทำงานระหว่างภายในและภายนอกออบเจ็ค
3 หลักการออกแบบซอฟแวร์
- หลีกเลี่ยงสถานะที่ไม่แน่นอนที่แบ่งปัน
- จากโปรแกรมไปส่วนประสานผู้ใช้ไม่ใช่การใช้งาน
- การเปลี่ยนแปลงข้อกำหนดเล็กน้อยย่อมจำเป็นต้องมีการเปลี่ยนแปลงเล็กน้อยในซอฟแวร์
-
Abstraction
การรู้เท่าที่จำเป็น คือการซ่อนข้อมูลโดยการลดความซับซ้อนของระบบด้วยการซ่อนรายละเอียดและเขียนไว้ในระบบย่อยภายในฟังชั่นก์นั้น
Abstraction คือการแสดงถึงคุณลักษณะและพฤติกรรมของ object เท่าที่จำเป็นต้องรับรู้และใช้งาน โดยซ่อนส่วนที่เหลือเอาไว้เพื่อไม่ให้เกิดความสับสน(data hidding และ encapsulation) วิธีการ
abstraction คือการขจัดสิ่งที่ไม่สำคัญๆออกไปเพื่อจะได้โฟกัสกับสิ่งที่เราสนใจหลักๆโดยไม่ต้องใส
่ใจกับรายละเอียดปลีกย่อย
Inheritance
การสร้างการสืบทอดคุณสมบัติ ในการเขีนโปรแกรมที่มีคลาสหลาย ๆ คลาสเราสามารถกำหนดให้คลาสใดคลาสหนึ่งเป็นต้นแบบและสร้างคลาสต่าง ๆ ตามออกมาโดยมีแอตทริบิวต์และเมธอดของคลาสเดิมมาใช้
Overload Constructor
Constructor เป็นสิ่งที่คลาสลูกไม่สามารถสืบทอดจากคลาสแม่ได้ แต่คลาสลูกสามารถใช้คอนสตรัคเตอร์ของคลาสแม่ได้โดยใช้คีเวิร์ด super
Constructor คือ สิ่งที่มีไว้สำหรับกำหนดค่าเริ่มต้นให้กับตัวแปรคลาสของอ็อปเจ็ค คอนสตรัคเตอร์จะทำงานอัตโนมัติเมื่อมีการ new อ็อปเจ็คขึ้นมา ระบบจะทำการจองพื้นที่ในหน่วยความจำสำหรัวแปรอ็อปเจ็คแล้วตามด้วยคอนสตรัคเตอร์
Multiple inheritance
คลาสสามารถสืบทอดคุณสมบัติจากคลาสแม่ได้มากกว่าหนึ่งคลาสพร้อม ๆ กัน อาจจะมี คลาสแม่มากกว่าหนึ่งคลาสและเกิดเป็นคลาสลูกหนึ่งหรือคลาสลูกมากกว่าหนึ่งคลาสก็ได้
-
ประเภทของคลาส
-
คลาสลูก (Subclass)
สามารถรับเอาแอตทริบิวต์และเมธอดของคลาสแม่มาใช้ คลาสลูกสามารถพัฒนาต่อเติมแอตทริบิวต์และเมธอดของตัวเองได้ ซึ่งเราเรียกการกระทำนี้ว่า Overriding Method
Overriding เป็นการเปลี่ยนแปลงการทำงานของเมธอดในคลาสลูกที่สืบทอดมาจากคลาสแม่ เพื่อสร้างหน้าที่การทำงานใหม่ให้เกิดขึ้น และแตกต่างไปจากเดิมแต่ยังคงชื่อ Method เดิมเอาไว้นั้นเอง
เมธอดในคลาสลูกจะมีชื่อ ชนิดข้อมูลที่คืนค่า จำนวนและชนิดของข้อมูลของอากิวเมนต์ที่เหมือนกันกับคลาสแม่ สามารถพัฒนาเมธอดให้มีการทำงานในเรื่องเดียวกัน แต่แตกกันในรายละเอียดของการทำงาน