Please enable JavaScript.
Coggle requires JavaScript to display documents.
สรุปบทที่7 :tada: Object Oriented Programming :tada:, image, image, image…
สรุปบทที่7
:tada: Object Oriented Programming :tada:
:pen:
ความหมาย
OOP คือ การเขียนโปรแกรมเชิงวัตถุ เป็นวิธีการเขียนโปรแกรม โดยอาศัยแนวคิดของ "วัตถุ" ( Object )
ซึ่งมีการสร้าง Object หรือมีการเรียกใช้ Object ให้ทํางาน ตามที่เราต้องการ โดยที่ในการเรียกใช้ Object นั้น เราจะสนใจเฉพาะการทํางานของ Object เท่านั้น ไม่จําเป็นต้องสนใจรายละเอียดภายในของ Object ว่าเป็นอย่างไร
-วัตถุประสงค์หลัก คือ เพื่อให้เกิดความยืดหยุ่นในการเขียนโปรแกรมในขณะที่สร้างแอปพลิเคชันซอฟต์แวร์ขนาดเล็กและใหญ่
-ภาษาที่สนับสนุนการเขียนโปรแกรมเชิงวัตถุ เช่น Java, C++, Python, C# , PHP ฯลฯ
:pen:
คลาส (Class)
ความหมาย
คลาส ( Class ) คือ ต้นแบบของวัตถุ( Object) หรือเป็นแม่แบบของวัตถุ ( Prototype ) สำหรับใช้ในการพัฒนาโปรแกรมแบบ OOP (Object Oriented Programming) โดยวัตถุแต่ละสิ่งนั้นจะมีคุณลักษณะและการทำงานที่เหมือนกัน หรือคล้ายกัน
Class เปรียบเสมือน พิมพ์เขียว ที่ กำหนดโครงสร้าง และแบบแปลน ต่าง ๆ ว่า Object ที่สร้างจาก Class ควรจะมีอะไรบ้าง
:pen:
วัตถุ(Object)
ความหมาย
วัตถุ ( Object ) คือ วัตถุในโลกทั้งที่จับต้องได้ (Tangible) และจับต้องไม่ได้ (Intangible)
วัตถุ (Object) คือ สิ่งที่ถูกสร้างขึ้นจากคลาส( Class ) ซึ่ง Object จะมีคุณสมบัติ (Property) และพฤติกรรม ( Method ) เหมือนกันกับคลาส( Class ) ทุกประการ
ตัวอย่าง
class MyClass:
x = 5
y = x + 21 / 2
z = x + y
myObject = MyClass()
:pen:
การสืบทอด (inheritance)
ความหมาย
การสืบทอด ( inheritance ) คือ การรับเอาคุณสมบัติบางอย่างมาจากสิ่งเดิมที่มีอยู่แล้ว จากนั้นก็สร้างเพิ่มเติมสิ่งใหม่ที่ต้องการเข้าไป ซึ่งช่วยให้ประหยัดเวลาการทำงาน ไม่ต้องเสียเวลาพัฒนาใหม่
การสร้าง Class ใหม่จาก Class เดิมที่มีอยู่แล้วโดยมีการถ่ายทอดคุณสมบัติจาก Class หลัก
ตัวอย่าง
*Super Class
class Person:
def --init--(self, firstName, lastName):
self.firstName = firstName
self.lastName = lastName
def getName(self):
return self.firstName + ' ' + self.lastName
*Sub Class
class Student(Person):
print('hello how are you')
p = Student('nuch', 'nook')
p.career = 'Programmer
p.country = 'Thailand'
print('Name: ' + p.getName())
print('Career: ' + p.career)
print('Country: ' + p.country)
:pen:
การพ้องรูป ( Polymorphism )
ความหมาย
การพ้องรูป ( Polymorphism ) คือ การอนุญาตให้ตั้งชื่อฟังก์ชั่นการทำงานซ้ำกันได้
ประเภท
แบ่งเป็น 2 ประเภทคือ
Overloading
Overriding
:pen:
การห่อหุ้ม ( Encapsulation)
ความหมาย
การห่อหุ้ม ( Encapsulation ) คือ เป็นกระบวนการซ่อนรายละเอียดการทำงานและข้อมูลไว้ภายใน ไม่ให้ภายนอกสามารถมองเห็นได้ เรียกว่า “information hiding” และเมื่อภายนอกมองไม่เห็นสิ่งที่ซ่อนอยู่ภายในก็จะไม่สามารถเปลี่ยนแปลงแก้ไขสิ่งที่อยู่ภายในได้
:pen:
Abstraction
ความหมาย
Abstraction คือ กลุ่มของกระบวนการในการสร้างแนวคิดของ Class จากกลุ่มของ Object ที่เราสนใจ
การกำจัดข้อมูลที่ไม่เกี่ยวข้องทิ้งไป โดยให้เหลือข้อมูลที่ต้องการต่อการแก้ปัญหาเท่านั้น
:pen:
Overloading and Overriding Method
Overloading Method
คือ Method ที่มีชื่อเหมือนกัน และอยู่ภายใน Class เดียวกัน สิ่งที่แยกความแตกต่างของ Method ที่เป็น Overload Method คือ Parameter (เป็นผลมาจากคุณสมบัติของ Polymorphism )
Overriding Method
คือ Method ของ Class ลูก (SubClass) ที่มีชื่อเหมือนกับ Method ของ CLass แม่ (super Class) (เป็นผลมาจากคุณสมบัติของการ inheritance)