Please enable JavaScript.
Coggle requires JavaScript to display documents.
สรุปความเข้าใจ Object-Oriented Programming (ตัวอย่างภาษาที่สนับสนุนการเขีย…
สรุปความเข้าใจ Object-Oriented Programming
วัตถุ (Object)
1.Attribute
2.Method
3.Attribute หรือ Data แต่ละ Object อาจมีข้อมูลที่แตกต่างกัน
4.Method หรือ behavior สิ่งที่สามารถกระทำได้
คลาส (Class)
เป็นโครงสร้างของ Object เปรียบเสมือนพิมพ์เขียว(template)
ออปเจคที่ถูกสร้างมาจากคลาส บางครั้งเรียกว่าเป็น instance
ถูกสร้างขึ้นตามกระบวนการทำงานของ JVM
ตัวอย่างภาษาที่สนับสนุนการเขียนโปรแกรมเชิงวัตถุ
ABAP
Ada 95
C#
C++
Common Lisp Object System
Delphi++
Eiffel
Fortran 2003
JADE
Java
Javascript
Modula-3
Nice
Oberon
Objective-C
Objective Modula-2
OCaml
Object Pascal
Perl
PHP
Python
REALbasic
Ruby
Simula
Sleep
Smalltalk
Specman
SystemVerilog
UnrealScript
Visual Basic
Visual Basic.NET
Visual C#.NET
Visual FoxPro
ซึ่ง OOP จะมีหลักการที่เป็นเสาหลักอยู่ 4 ข้อ ดังนี้
Abstraction
เป็นหลักการนามธรรมของ object ซึ่งเป็นกระบวนการในการเอาส่วน concrete ของ class หรือส่วนที่มีการ implementation ของ object ออกมา โดยรักษาลักษณะร่วมกัน หรือคุณลักษณะให้กับ concreate object ต่างๆ ซึ่งจะเป็นการใช้หลักการอื่นๆ ของ OOP ในการทำให้เกิด abstaction โดยเฉพาะอย่างยิ่ง Polymorphism และในบางภาษาจะมี abstract/interface keyword มาให้เพื่อระบุ class ที่ต้องการให้มีคุณสมบัติ abstraction
Encapsulation
เป็นหลักการการห่อหุ้มสถานะหรือข้อมูลของ object จากภายนอกให้ไม่สามารถเข้าถึงสถานะของ object ได้ ดั้งนั้นการเข้าถึงจะต้องกระทำผ่านทาง method เท่านั้น (เรียกว่า setter/getter) ซึ่งการซ้อนข้อมูลก็มีหลายระดับ private จำกัดการเข้าถึงอย่างสิ้นเชิง, protected จำกัดการเข้าถึงจากภายนอกแต่ class ลูกสามารถเข้าถึงได้ หรือ public ไม่จำกัดดารเข้าถึงเลยภายนอกสามารถเข้าถึงได้ เป็นต้น บางภาษาอาจจะมีมากกว่านี้
ข้อดีของการห่อหุ้ม
1.Flexibility
2.Maintainability
3.Information Hiding
4.Modularity
Inheritance
เป็นหลักการสืบทอดคุณสมบัติของ object ซึ่ง class (subclass) ที่สืบทอดจาก class อื่น (superclass) จะได้รับสถานะและพฤติกรรมของ class นั้นทั้งหมด และยังสามารถเปลี่ยนพฤติกรรมของบาง method (overriding) ที่ได้สืบทอดมาได้ อีกทั้งสามารถขยายความสามารถเพิ่มเติมได้อีก ทำให้เราสามารถนำโค้ดที่มีอยู่แล้วมาใช้ใหม่ได้ (code reuse)
Polymorphism
สามารถใช้ Super class สำหรับประกาศตัวแปรของออปเจคที่สร้างออปเจคจาก Sub class ได้
Override method
การสร้างออบเจคโดยสร้างมาจากคลาสที่มี Superclass เดียวกัน