SlideShare a Scribd company logo
1 of 17
Download to read offline
Object-Oriented Programming
การเขียนโปรแกรมเชิงอ็อบเจ็กต์
อาจารย์สมเกียรติ ช่อเหมือน
สาขาวิชาวิศวกรรมซอฟต์แวร์ คณะวิทยาศาสตร์และเทคโนโลยี
(tkorinp@hotmail.com)
วิวัฒนาการของกระบวนทัศน์ (Paradigm Evolution)
ที่มา: http://www.slideshare.net/FALLEE31188/brookshear-06
Different Programming Paradigms
• การเขียนโปรแกรมเชิงโครงสร้าง
– ใช้การพัฒนาในบล็อกที่กาหนด
• เข้าใจง่าย
• ดูแลรักษาง่าย
• การเขียนโปแกรมเชิงวัตถุ
– ใช้การพัฒนาแบบจาลองของแต่ละส่วนของโปรแกรม
• สามารถนามาใช้ใหม่ได้
• ง่ายต่อการปรับปรุงและพัฒนา
Introduction to Object Orientated Programming
• กระบวนทัศน์ที่แตกต่างกันในการเขียนโปรแกรม
• ข้อดีของ OOP
– แนวทางการพัฒนาซอฟแวร์และการสร้างแบบจาลอง
– แนวคิดที่ใช้ในการเขียนโปรแกรมเชิงวัตถุ
(abstraction, encapsulation, inheritance and polymorphism)
คุณลักษณะของภาษาที่ใช้เขียนโปรแกรมเชิงวัตถุ
• Encapsulation
– สามารถปกป้องและเก็บรักษาข้อมูลไว้ภายในและปลอดภัยจากการเชื่อมต่อ
ภายนอกได้
• Inheritance
– กระบวนการที่คลาสจะสืบทอดคุณสมบัติพื้นฐานทั้งหมดของคลาสหลัก สามารถ
นาบางส่วนมาใช้และเพิ่มเติมคุณสมบัติได้
• Polymorphism
– ความสามารถที่จะอยู่ในรูปแบบต่างๆ ได้หลากหลาย
• Abstraction
– ความสามารถในการแสดงข้อมูลในระดับแนวคิด
คุณสมบัติที่สาคัญของการเขียนโปรแกรมเชิงวัตถุ
• เน้นข้อมูลมากกว่าขั้นตอน
• โปรแกรมจะถูกแบ่งออกเป็นส่วนประกอบ
• โครงสร้างข้อมูลได้รับการออกแบบให้เป็นเช่นเดียวกับวัตถุ
• ฟังก์ชั่นการทางาน+ข้อมูล = โครงสร้างข้อมูลของวัตถุ
• ข้อมูลถูกซ่อนไว้และไม่สามารถเข้าถึงได้จากภายนอก
• วัตถุสามารถสื่อสารกันผ่านฟังก์ชั่น
• ข้อมูลและฟังก์ชั่นสามารถเพิ่มได้ง่าย
• การออกแบบโปรแกรมเป็นแบบล่างขึ้นบน
กระบวนการที่สาคัญใน OOP
• Class definitions
• instance
• Abstraction
• Encapsulation
• Inheritance
• Polymorphism
• Generic class
• Class libraries
• Message passing
Object Oriented Programming
• เขียนโปรแกรมเชิงวัตถุคือ
– การนากระบวนทัศน์ต่าง ๆ มาใช้ในการพัฒนาซอฟต์แวร์
– การพัฒนาที่เน้นส่วนประกอบของซอฟต์แวร์ที่นากลับมาใช้ใหม่ได้
– ประหยัดเวลาในการพัฒนาและประหยัดค่าใช้จ่าย
– ช่วยให้สามารถปรับปรุงและพัฒนาซอฟแวร์รุ่นที่ดีกว่าได้ง่ายขึ้น
ออบเจ็กต์ (Object)
Object คือ สิ่งที่นามาใช้ในการแก้ปัญหาที่สนใจ
Object ประกอบด้วยคุณลักษณะ 3 ประการ คือ
- identity ระบุได้ว่าสิ่งนั้นคืออะไร
- attribute คุณสมบัติของสิ่งนั้น เหมือนหรือแตกต่างกับสิ่งอื่น
- state มีสถานะหรือทาอะไรได้บ้าง (Method) เมื่อมีการ
เปลี่ยนแปลงสถานะหรือค่าต่างๆในแต่ละช่วงเวลา
Object-Oriented Programming
การเขียนโปรแกรมคอมพิวเตอร์ ซึ่งให้ความสาคัญกับ อ็อบเจ็กต์
(Object) ที่นามาใช้เขียนโปรแกรม โดยการนิยามคลาส (Class) ขึ้นเพื่อ
เป็นตัวแบบของกลุ่มอ็อบเจ็กต์
ทาให้สามารถนากลับไปใช้ในการปรับปรุงและพัฒนาได้สะดวก รวดเร็วขึ้น
Class Object2
Object1
ทาไมต้องใช้ OOP
• เราสนใจแต่เขียนโค้ด เพื่อแก้ปัญหา
• แต่วิธีการพัฒนา
– ที่ถูกนามาใช้ไม่สามารถแก้ปัญหาได้
– เกิดจากในช่วง
• analysis and design
• Maintainability
• ค่าใช้จ่ายส่วนใหญ่
– เกิดจากการพัฒนาและปรับปรุงต่อจากครั้งแรก
• ต้องแน่ใจว่าซอฟต์แวร์ที่พัฒนาขึ้น
– มั่นใจว่ามีประสิทธิภาพ
– ง่ายต่อการดูแลรักษาในอนาคต
Object Oriented Principles
• Abstraction และ encapsulation เป็นหลักการพื้นฐานในการ
พัฒนาซอฟต์แวร์
• Abstraction ช่วยให้สามารถพิจารณาความคิดที่ซับซ้อนได้
– ทราบรายละเอียด
– ลดความสับสนและสิ่งที่ไม่เกี่ยวข้องได้
• Encapsulation ช่วยให้สามารถมุ่งเน้นสิ่งที่สนใจ
– เมื่อพิจารณาวิธีการทางานได้
– รายละเอียดของวิธีการทางาน
• polymorphism ช่วยให้สามารถใช้ประโยชน์จาก
– Generalization/Specialization
– โดยใช้การ inheritance (สืบทอด)
Object Oriented Principles (ต่อ)
• Generalization พิจารณาวัตถุที่มีคุณสมบัติทั่วไปและกาหนด
ระดับชั้นย่อยๆ เฉพาะที่จะสืบทอด
• Generalization / specialization กาหนดคุณลักษณะทั่วไป
และการดาเนินงานของวัตถุที่แตกต่าง
• กาหนดคุณลักษณะพิเศษเพิ่มเติมของวัตถุได้
• เมื่อสืบทอดจะได้รับลักษณะทั่วไปทั้งหมดของวัตถุแบบอัตโนมัติ
และเพิ่มลักษณะพิเศษขึ้นได้
• Polymorphism สามารถขยายความสามารถให้กับวัตถุได้
อะไรคือ Object Oriented Programming?
• การพิจารณาวัตถุทางกายภาพ
• การพิจารณาสิ่งที่เกี่ยวข้องกับวัตถุ
• การเขียนโปรแกรมที่เกี่ยวข้องกับการสร้างองค์ความรู้
– ในรูปของโมเดลเพื่อแก้ปัญหาทางธุรกิจ
– วัตถุมีสถานะและพฤติกรรมที่เกี่ยวข้องกับมัน ในแต่ละช่วงเวลา (สิ่งที่
โปรแกรมคอมพิวเตอร์ทาได้)
• โลกแห่งความจริงที่มีความยุ่งยากและซับซ้อน
– ต้องสร้างโมเดลจากโลกแห่งความจริง
• มุ่งเน้นที่ปัญหาและตัดส่วนที่ไม่สนใจออก
object oriented analysis and design techniques
• ช่วยให้เข้าใจโลกความจริงและได้โมเดลที่เข้าใจง่าย
• 'Class' คือการออกแบบซอฟต์แวร์ที่อธิบายคุณสมบัติทั่วไป
โดยการสร้างแบบจาลองทางซอฟแวร์
• ‘Object’ ถูกสร้างขึ้นจากClass ที่ออกแบบสาหรับแทนแต่ละสิ่งที่
เกิดขึ้นจริง
ประโยชน์ของวิธี OOP
• ก่อนการพัฒนาซอฟต์แวร์ สิ่งแรกที่คุณต้องพัฒนาคือ แบบจาลอง
เชิงวัตถุ
• การสร้างแบบจาลองเชิงวัตถุ เน้นการวิเคราะห์และออกแบบ
– แนวคิดที่ดีกว่า (แบบจาลองข้อมูลและพฤติกรรมร่วมกัน)
– การบารุงรักษาที่ดีกว่า (เข้าใจมากขึ้น)
– สามารถนามาใช้ดีกว่า (มีการห่อหุ้มวัตถุ)
สรุป OOP
• เขียนโปรแกรมเชิงวัตถุเกี่ยวข้องกับการสร้าง Class โดยการสร้าง
แบบจาลองจากโลกแห่งความจริง
• ช่วยให้สร้าง Class ที่มีคุณลักษณะพิเศษ โดยการสืบทอด
พฤติกรรมของ Class หลักได้
• พฤติกรรมที่มีความแตกต่าง สามารถปรับเปลี่ยนหรือเพิ่มเติมได้
ตามความต้องการที่เปลี่ยนแปลง
• สามารถเข้าถึงได้และไม่ต้องเปลี่ยนส่วนต่าง ๆ ของระบบ

More Related Content

What's hot

งานนำเสนอ หน่วยที่ 1 เรื่อง 1 ความรู้เบื้องต้นเกี่ยวกับโปรแกรมประมวลผลคำ
งานนำเสนอ หน่วยที่ 1 เรื่อง 1 ความรู้เบื้องต้นเกี่ยวกับโปรแกรมประมวลผลคำงานนำเสนอ หน่วยที่ 1 เรื่อง 1 ความรู้เบื้องต้นเกี่ยวกับโปรแกรมประมวลผลคำ
งานนำเสนอ หน่วยที่ 1 เรื่อง 1 ความรู้เบื้องต้นเกี่ยวกับโปรแกรมประมวลผลคำsutham lrp
 
ใบความรู้ที่ 3 เรื่องการเพิ่มฟอร์มและคำสั่งเปิดฟอร์ม
ใบความรู้ที่ 3 เรื่องการเพิ่มฟอร์มและคำสั่งเปิดฟอร์มใบความรู้ที่ 3 เรื่องการเพิ่มฟอร์มและคำสั่งเปิดฟอร์ม
ใบความรู้ที่ 3 เรื่องการเพิ่มฟอร์มและคำสั่งเปิดฟอร์มNattapon
 
ใบความรู้ที่ 2 เรื่องการใช้ message box และฟังก์ชันเปิดปิดโปรแกรม
ใบความรู้ที่ 2 เรื่องการใช้ message box และฟังก์ชันเปิดปิดโปรแกรมใบความรู้ที่ 2 เรื่องการใช้ message box และฟังก์ชันเปิดปิดโปรแกรม
ใบความรู้ที่ 2 เรื่องการใช้ message box และฟังก์ชันเปิดปิดโปรแกรมNattapon
 
Python: Third-Party Libraries
Python: Third-Party LibrariesPython: Third-Party Libraries
Python: Third-Party LibrariesDamian T. Gordon
 
Introduction to Python programming Language
Introduction to Python programming LanguageIntroduction to Python programming Language
Introduction to Python programming LanguageMansiSuthar3
 
เครื่องมือที่ใช้ลงสีในโปรแกรม Paint
เครื่องมือที่ใช้ลงสีในโปรแกรม Paintเครื่องมือที่ใช้ลงสีในโปรแกรม Paint
เครื่องมือที่ใช้ลงสีในโปรแกรม PaintBenjapeon Jantakhot
 
ระบบฐานข้อมูลสำหรับร้านค้าปลีก โดย สันติ พันไธสง
ระบบฐานข้อมูลสำหรับร้านค้าปลีก โดย สันติ พันไธสงระบบฐานข้อมูลสำหรับร้านค้าปลีก โดย สันติ พันไธสง
ระบบฐานข้อมูลสำหรับร้านค้าปลีก โดย สันติ พันไธสงUtai Sukviwatsirikul
 
เอกสารประกอบการเรียน โปรแกรม Microsoft Excel 2010
เอกสารประกอบการเรียน โปรแกรม Microsoft Excel 2010 เอกสารประกอบการเรียน โปรแกรม Microsoft Excel 2010
เอกสารประกอบการเรียน โปรแกรม Microsoft Excel 2010 kanidta vatanyoo
 
Modules in Python Programming
Modules in Python ProgrammingModules in Python Programming
Modules in Python Programmingsambitmandal
 
Introduction with Programming Language
Introduction with Programming LanguageIntroduction with Programming Language
Introduction with Programming LanguageSaroar Zahan Sojib
 
เรื่องที่ 8 สภาพสมดุลยืดหยุ่น
เรื่องที่ 8   สภาพสมดุลยืดหยุ่นเรื่องที่ 8   สภาพสมดุลยืดหยุ่น
เรื่องที่ 8 สภาพสมดุลยืดหยุ่นthanakit553
 
วิธีปลดโปรแกรม Deep freeze
วิธีปลดโปรแกรม Deep freezeวิธีปลดโปรแกรม Deep freeze
วิธีปลดโปรแกรม Deep freezeTanawat Wattanamanon
 
เครื่องมือต่างๆ ในโปรแกรม Paint
เครื่องมือต่างๆ ในโปรแกรม Paintเครื่องมือต่างๆ ในโปรแกรม Paint
เครื่องมือต่างๆ ในโปรแกรม PaintBenjapeon Jantakhot
 

What's hot (20)

งานนำเสนอ หน่วยที่ 1 เรื่อง 1 ความรู้เบื้องต้นเกี่ยวกับโปรแกรมประมวลผลคำ
งานนำเสนอ หน่วยที่ 1 เรื่อง 1 ความรู้เบื้องต้นเกี่ยวกับโปรแกรมประมวลผลคำงานนำเสนอ หน่วยที่ 1 เรื่อง 1 ความรู้เบื้องต้นเกี่ยวกับโปรแกรมประมวลผลคำ
งานนำเสนอ หน่วยที่ 1 เรื่อง 1 ความรู้เบื้องต้นเกี่ยวกับโปรแกรมประมวลผลคำ
 
Programing techniques
Programing techniquesPrograming techniques
Programing techniques
 
ใบความรู้ที่ 3 เรื่องการเพิ่มฟอร์มและคำสั่งเปิดฟอร์ม
ใบความรู้ที่ 3 เรื่องการเพิ่มฟอร์มและคำสั่งเปิดฟอร์มใบความรู้ที่ 3 เรื่องการเพิ่มฟอร์มและคำสั่งเปิดฟอร์ม
ใบความรู้ที่ 3 เรื่องการเพิ่มฟอร์มและคำสั่งเปิดฟอร์ม
 
CS3391 -OOP -UNIT – IV NOTES FINAL.pdf
CS3391 -OOP -UNIT – IV NOTES FINAL.pdfCS3391 -OOP -UNIT – IV NOTES FINAL.pdf
CS3391 -OOP -UNIT – IV NOTES FINAL.pdf
 
ใบความรู้ที่ 2 เรื่องการใช้ message box และฟังก์ชันเปิดปิดโปรแกรม
ใบความรู้ที่ 2 เรื่องการใช้ message box และฟังก์ชันเปิดปิดโปรแกรมใบความรู้ที่ 2 เรื่องการใช้ message box และฟังก์ชันเปิดปิดโปรแกรม
ใบความรู้ที่ 2 เรื่องการใช้ message box และฟังก์ชันเปิดปิดโปรแกรม
 
Python: Third-Party Libraries
Python: Third-Party LibrariesPython: Third-Party Libraries
Python: Third-Party Libraries
 
Introduction to Python programming Language
Introduction to Python programming LanguageIntroduction to Python programming Language
Introduction to Python programming Language
 
C notes.pdf
C notes.pdfC notes.pdf
C notes.pdf
 
NumPy.pptx
NumPy.pptxNumPy.pptx
NumPy.pptx
 
เครื่องมือที่ใช้ลงสีในโปรแกรม Paint
เครื่องมือที่ใช้ลงสีในโปรแกรม Paintเครื่องมือที่ใช้ลงสีในโปรแกรม Paint
เครื่องมือที่ใช้ลงสีในโปรแกรม Paint
 
ระบบฐานข้อมูลสำหรับร้านค้าปลีก โดย สันติ พันไธสง
ระบบฐานข้อมูลสำหรับร้านค้าปลีก โดย สันติ พันไธสงระบบฐานข้อมูลสำหรับร้านค้าปลีก โดย สันติ พันไธสง
ระบบฐานข้อมูลสำหรับร้านค้าปลีก โดย สันติ พันไธสง
 
เอกสารประกอบการเรียน โปรแกรม Microsoft Excel 2010
เอกสารประกอบการเรียน โปรแกรม Microsoft Excel 2010 เอกสารประกอบการเรียน โปรแกรม Microsoft Excel 2010
เอกสารประกอบการเรียน โปรแกรม Microsoft Excel 2010
 
Python programming
Python  programmingPython  programming
Python programming
 
Python Tutorial Part 2
Python Tutorial Part 2Python Tutorial Part 2
Python Tutorial Part 2
 
Javapolymorphism
JavapolymorphismJavapolymorphism
Javapolymorphism
 
Modules in Python Programming
Modules in Python ProgrammingModules in Python Programming
Modules in Python Programming
 
Introduction with Programming Language
Introduction with Programming LanguageIntroduction with Programming Language
Introduction with Programming Language
 
เรื่องที่ 8 สภาพสมดุลยืดหยุ่น
เรื่องที่ 8   สภาพสมดุลยืดหยุ่นเรื่องที่ 8   สภาพสมดุลยืดหยุ่น
เรื่องที่ 8 สภาพสมดุลยืดหยุ่น
 
วิธีปลดโปรแกรม Deep freeze
วิธีปลดโปรแกรม Deep freezeวิธีปลดโปรแกรม Deep freeze
วิธีปลดโปรแกรม Deep freeze
 
เครื่องมือต่างๆ ในโปรแกรม Paint
เครื่องมือต่างๆ ในโปรแกรม Paintเครื่องมือต่างๆ ในโปรแกรม Paint
เครื่องมือต่างๆ ในโปรแกรม Paint
 

Viewers also liked

Presentacion sobre pedagogía compleja
Presentacion sobre pedagogía complejaPresentacion sobre pedagogía compleja
Presentacion sobre pedagogía complejaJesus Sanchez
 
iHelp 2016 - FIAP (1° SIB)
iHelp 2016 - FIAP (1° SIB)iHelp 2016 - FIAP (1° SIB)
iHelp 2016 - FIAP (1° SIB)Guilherme Bigois
 
Búsqueda en base de datos pubmed
Búsqueda en base de datos pubmedBúsqueda en base de datos pubmed
Búsqueda en base de datos pubmedEsperanzaangus
 
Búsqueda en la base de datos de PubMed
Búsqueda en la base de datos de PubMedBúsqueda en la base de datos de PubMed
Búsqueda en la base de datos de PubMedasun_nugar
 
Diapositivas anghely aldazoro
Diapositivas anghely aldazoroDiapositivas anghely aldazoro
Diapositivas anghely aldazoroanghelyaldazoro
 
El docente sin vocación
El docente sin vocaciónEl docente sin vocación
El docente sin vocaciónpineda0515
 
Aminoacidos 15 i
Aminoacidos 15 iAminoacidos 15 i
Aminoacidos 15 iMaxs MV
 
Е. Б. Ленчук - Региональная инновационная политика: приоритеты и механизмы ра...
Е. Б. Ленчук - Региональная инновационная политика: приоритеты и механизмы ра...Е. Б. Ленчук - Региональная инновационная политика: приоритеты и механизмы ра...
Е. Б. Ленчук - Региональная инновационная политика: приоритеты и механизмы ра...Moscow School of Economics (MSE MSU)
 
Proceso de extracción de Sangre
Proceso de extracción de SangreProceso de extracción de Sangre
Proceso de extracción de SangreHernanVeliz
 

Viewers also liked (20)

Overloading
OverloadingOverloading
Overloading
 
Inheritance and Method Overriding
Inheritance and Method OverridingInheritance and Method Overriding
Inheritance and Method Overriding
 
Presentacion sobre pedagogía compleja
Presentacion sobre pedagogía complejaPresentacion sobre pedagogía compleja
Presentacion sobre pedagogía compleja
 
Pega de tuberia
Pega de tuberiaPega de tuberia
Pega de tuberia
 
iHelp 2016 - FIAP (1° SIB)
iHelp 2016 - FIAP (1° SIB)iHelp 2016 - FIAP (1° SIB)
iHelp 2016 - FIAP (1° SIB)
 
Búsqueda en base de datos pubmed
Búsqueda en base de datos pubmedBúsqueda en base de datos pubmed
Búsqueda en base de datos pubmed
 
Búsqueda en la base de datos de PubMed
Búsqueda en la base de datos de PubMedBúsqueda en la base de datos de PubMed
Búsqueda en la base de datos de PubMed
 
Diapositivas anghely aldazoro
Diapositivas anghely aldazoroDiapositivas anghely aldazoro
Diapositivas anghely aldazoro
 
El docente sin vocación
El docente sin vocaciónEl docente sin vocación
El docente sin vocación
 
Ntc1000
Ntc1000Ntc1000
Ntc1000
 
к конспекту 1
к конспекту 1к конспекту 1
к конспекту 1
 
Aminoacidos 15 i
Aminoacidos 15 iAminoacidos 15 i
Aminoacidos 15 i
 
Labour laws
Labour lawsLabour laws
Labour laws
 
Anatomi Perkemihan
Anatomi Perkemihan Anatomi Perkemihan
Anatomi Perkemihan
 
Base de datos
Base de datosBase de datos
Base de datos
 
The Unified Modelling Lanage (UML)
The Unified Modelling Lanage (UML)The Unified Modelling Lanage (UML)
The Unified Modelling Lanage (UML)
 
Е. Б. Ленчук - Региональная инновационная политика: приоритеты и механизмы ра...
Е. Б. Ленчук - Региональная инновационная политика: приоритеты и механизмы ра...Е. Б. Ленчук - Региональная инновационная политика: приоритеты и механизмы ра...
Е. Б. Ленчук - Региональная инновационная политика: приоритеты и механизмы ра...
 
Creating And Using Exceptions
Creating And Using ExceptionsCreating And Using Exceptions
Creating And Using Exceptions
 
1. ibm blockchain explained
1. ibm blockchain explained1. ibm blockchain explained
1. ibm blockchain explained
 
Proceso de extracción de Sangre
Proceso de extracción de SangreProceso de extracción de Sangre
Proceso de extracción de Sangre
 

Similar to Object-Oriented Programming

Similar to Object-Oriented Programming (20)

Software
SoftwareSoftware
Software
 
Software
SoftwareSoftware
Software
 
01 intro
01 intro01 intro
01 intro
 
SDLC
SDLCSDLC
SDLC
 
01 intro
01 intro01 intro
01 intro
 
การพัฒนาซอฟแวร์
การพัฒนาซอฟแวร์การพัฒนาซอฟแวร์
การพัฒนาซอฟแวร์
 
Activity 4
Activity 4Activity 4
Activity 4
 
New งานนำเสนอ microsoft office power point
New งานนำเสนอ microsoft office power pointNew งานนำเสนอ microsoft office power point
New งานนำเสนอ microsoft office power point
 
New งานนำเสนอ microsoft office power point
New งานนำเสนอ microsoft office power pointNew งานนำเสนอ microsoft office power point
New งานนำเสนอ microsoft office power point
 
1.Introduction to java
1.Introduction to java1.Introduction to java
1.Introduction to java
 
System Development Life Cycle
System Development  Life  CycleSystem Development  Life  Cycle
System Development Life Cycle
 
System development life cycle sdlc
System development life cycle  sdlcSystem development life cycle  sdlc
System development life cycle sdlc
 
System Development Life Cycle S D L C
System  Development  Life  Cycle   S D L CSystem  Development  Life  Cycle   S D L C
System Development Life Cycle S D L C
 
Unit2flowchart
Unit2flowchartUnit2flowchart
Unit2flowchart
 
Tools
ToolsTools
Tools
 
โครงงานคอมพิวเตอร์
โครงงานคอมพิวเตอร์ โครงงานคอมพิวเตอร์
โครงงานคอมพิวเตอร์
 
Computer project
Computer projectComputer project
Computer project
 
Activity4_naka
Activity4_nakaActivity4_naka
Activity4_naka
 
Activity4
Activity4Activity4
Activity4
 
งานๆๆๆๆๆ
งานๆๆๆๆๆงานๆๆๆๆๆ
งานๆๆๆๆๆ
 

More from CC Nakhon Pathom Rajabhat University

การสร้่างเว็บด้วยภาษา html
การสร้่างเว็บด้วยภาษา htmlการสร้่างเว็บด้วยภาษา html
การสร้่างเว็บด้วยภาษา htmlCC Nakhon Pathom Rajabhat University
 
ปฏิบัติการการพัฒนาออกแบบและการเขียนโปรแกรมเว็บเพจ
ปฏิบัติการการพัฒนาออกแบบและการเขียนโปรแกรมเว็บเพจปฏิบัติการการพัฒนาออกแบบและการเขียนโปรแกรมเว็บเพจ
ปฏิบัติการการพัฒนาออกแบบและการเขียนโปรแกรมเว็บเพจCC Nakhon Pathom Rajabhat University
 
การนำระบบไปใช้/การบำรุงรักษาระบบ
การนำระบบไปใช้/การบำรุงรักษาระบบการนำระบบไปใช้/การบำรุงรักษาระบบ
การนำระบบไปใช้/การบำรุงรักษาระบบCC Nakhon Pathom Rajabhat University
 
การออกแบบระบบและการออกแบบยูสเซอร์อินเตอร์เฟซ
การออกแบบระบบและการออกแบบยูสเซอร์อินเตอร์เฟซการออกแบบระบบและการออกแบบยูสเซอร์อินเตอร์เฟซ
การออกแบบระบบและการออกแบบยูสเซอร์อินเตอร์เฟซCC Nakhon Pathom Rajabhat University
 
การออกแบบเอาต์พุต/การออกแบบอินพุต
การออกแบบเอาต์พุต/การออกแบบอินพุตการออกแบบเอาต์พุต/การออกแบบอินพุต
การออกแบบเอาต์พุต/การออกแบบอินพุตCC Nakhon Pathom Rajabhat University
 
การพัฒนาระบบสารสนเทศและวัฏจักรการพัฒนาระบบสารสนเทศ
การพัฒนาระบบสารสนเทศและวัฏจักรการพัฒนาระบบสารสนเทศการพัฒนาระบบสารสนเทศและวัฏจักรการพัฒนาระบบสารสนเทศ
การพัฒนาระบบสารสนเทศและวัฏจักรการพัฒนาระบบสารสนเทศCC Nakhon Pathom Rajabhat University
 
ความรู้เบื้องต้นเกี่ยวกับการวิเคราะห์ระบบ
ความรู้เบื้องต้นเกี่ยวกับการวิเคราะห์ระบบความรู้เบื้องต้นเกี่ยวกับการวิเคราะห์ระบบ
ความรู้เบื้องต้นเกี่ยวกับการวิเคราะห์ระบบCC Nakhon Pathom Rajabhat University
 
ความรู้เบื้องต้นเกี่ยวกับระบบสารสนเทศ
ความรู้เบื้องต้นเกี่ยวกับระบบสารสนเทศความรู้เบื้องต้นเกี่ยวกับระบบสารสนเทศ
ความรู้เบื้องต้นเกี่ยวกับระบบสารสนเทศCC Nakhon Pathom Rajabhat University
 
บทที่7 การประยุกต์ใช้ในงานทางด้านโยธา
บทที่7 การประยุกต์ใช้ในงานทางด้านโยธาบทที่7 การประยุกต์ใช้ในงานทางด้านโยธา
บทที่7 การประยุกต์ใช้ในงานทางด้านโยธาCC Nakhon Pathom Rajabhat University
 

More from CC Nakhon Pathom Rajabhat University (20)

ภาษา php
ภาษา phpภาษา php
ภาษา php
 
ภาษา java sript
ภาษา java sriptภาษา java sript
ภาษา java sript
 
session cookies
session cookiessession cookies
session cookies
 
ภาษา css
ภาษา cssภาษา css
ภาษา css
 
ภาษา xhtml
ภาษา xhtmlภาษา xhtml
ภาษา xhtml
 
ภาษา html5
ภาษา html5ภาษา html5
ภาษา html5
 
การสร้่างเว็บด้วยภาษา html
การสร้่างเว็บด้วยภาษา htmlการสร้่างเว็บด้วยภาษา html
การสร้่างเว็บด้วยภาษา html
 
หลักการออกแบบเว็บไซต์
หลักการออกแบบเว็บไซต์หลักการออกแบบเว็บไซต์
หลักการออกแบบเว็บไซต์
 
ปฏิบัติการการพัฒนาออกแบบและการเขียนโปรแกรมเว็บเพจ
ปฏิบัติการการพัฒนาออกแบบและการเขียนโปรแกรมเว็บเพจปฏิบัติการการพัฒนาออกแบบและการเขียนโปรแกรมเว็บเพจ
ปฏิบัติการการพัฒนาออกแบบและการเขียนโปรแกรมเว็บเพจ
 
การนำระบบไปใช้/การบำรุงรักษาระบบ
การนำระบบไปใช้/การบำรุงรักษาระบบการนำระบบไปใช้/การบำรุงรักษาระบบ
การนำระบบไปใช้/การบำรุงรักษาระบบ
 
การออกแบบระบบและการออกแบบยูสเซอร์อินเตอร์เฟซ
การออกแบบระบบและการออกแบบยูสเซอร์อินเตอร์เฟซการออกแบบระบบและการออกแบบยูสเซอร์อินเตอร์เฟซ
การออกแบบระบบและการออกแบบยูสเซอร์อินเตอร์เฟซ
 
การออกแบบเอาต์พุต/การออกแบบอินพุต
การออกแบบเอาต์พุต/การออกแบบอินพุตการออกแบบเอาต์พุต/การออกแบบอินพุต
การออกแบบเอาต์พุต/การออกแบบอินพุต
 
Entity Relationship
Entity RelationshipEntity Relationship
Entity Relationship
 
แบบจำลองระบบ
แบบจำลองระบบแบบจำลองระบบ
แบบจำลองระบบ
 
การวิเคราะห์ระบบ 2
การวิเคราะห์ระบบ 2การวิเคราะห์ระบบ 2
การวิเคราะห์ระบบ 2
 
การวิเคราะห์ระบบ 1
การวิเคราะห์ระบบ 1การวิเคราะห์ระบบ 1
การวิเคราะห์ระบบ 1
 
การพัฒนาระบบสารสนเทศและวัฏจักรการพัฒนาระบบสารสนเทศ
การพัฒนาระบบสารสนเทศและวัฏจักรการพัฒนาระบบสารสนเทศการพัฒนาระบบสารสนเทศและวัฏจักรการพัฒนาระบบสารสนเทศ
การพัฒนาระบบสารสนเทศและวัฏจักรการพัฒนาระบบสารสนเทศ
 
ความรู้เบื้องต้นเกี่ยวกับการวิเคราะห์ระบบ
ความรู้เบื้องต้นเกี่ยวกับการวิเคราะห์ระบบความรู้เบื้องต้นเกี่ยวกับการวิเคราะห์ระบบ
ความรู้เบื้องต้นเกี่ยวกับการวิเคราะห์ระบบ
 
ความรู้เบื้องต้นเกี่ยวกับระบบสารสนเทศ
ความรู้เบื้องต้นเกี่ยวกับระบบสารสนเทศความรู้เบื้องต้นเกี่ยวกับระบบสารสนเทศ
ความรู้เบื้องต้นเกี่ยวกับระบบสารสนเทศ
 
บทที่7 การประยุกต์ใช้ในงานทางด้านโยธา
บทที่7 การประยุกต์ใช้ในงานทางด้านโยธาบทที่7 การประยุกต์ใช้ในงานทางด้านโยธา
บทที่7 การประยุกต์ใช้ในงานทางด้านโยธา
 

Object-Oriented Programming

  • 3. Different Programming Paradigms • การเขียนโปรแกรมเชิงโครงสร้าง – ใช้การพัฒนาในบล็อกที่กาหนด • เข้าใจง่าย • ดูแลรักษาง่าย • การเขียนโปแกรมเชิงวัตถุ – ใช้การพัฒนาแบบจาลองของแต่ละส่วนของโปรแกรม • สามารถนามาใช้ใหม่ได้ • ง่ายต่อการปรับปรุงและพัฒนา
  • 4. Introduction to Object Orientated Programming • กระบวนทัศน์ที่แตกต่างกันในการเขียนโปรแกรม • ข้อดีของ OOP – แนวทางการพัฒนาซอฟแวร์และการสร้างแบบจาลอง – แนวคิดที่ใช้ในการเขียนโปรแกรมเชิงวัตถุ (abstraction, encapsulation, inheritance and polymorphism)
  • 5. คุณลักษณะของภาษาที่ใช้เขียนโปรแกรมเชิงวัตถุ • Encapsulation – สามารถปกป้องและเก็บรักษาข้อมูลไว้ภายในและปลอดภัยจากการเชื่อมต่อ ภายนอกได้ • Inheritance – กระบวนการที่คลาสจะสืบทอดคุณสมบัติพื้นฐานทั้งหมดของคลาสหลัก สามารถ นาบางส่วนมาใช้และเพิ่มเติมคุณสมบัติได้ • Polymorphism – ความสามารถที่จะอยู่ในรูปแบบต่างๆ ได้หลากหลาย • Abstraction – ความสามารถในการแสดงข้อมูลในระดับแนวคิด
  • 6. คุณสมบัติที่สาคัญของการเขียนโปรแกรมเชิงวัตถุ • เน้นข้อมูลมากกว่าขั้นตอน • โปรแกรมจะถูกแบ่งออกเป็นส่วนประกอบ • โครงสร้างข้อมูลได้รับการออกแบบให้เป็นเช่นเดียวกับวัตถุ • ฟังก์ชั่นการทางาน+ข้อมูล = โครงสร้างข้อมูลของวัตถุ • ข้อมูลถูกซ่อนไว้และไม่สามารถเข้าถึงได้จากภายนอก • วัตถุสามารถสื่อสารกันผ่านฟังก์ชั่น • ข้อมูลและฟังก์ชั่นสามารถเพิ่มได้ง่าย • การออกแบบโปรแกรมเป็นแบบล่างขึ้นบน
  • 7. กระบวนการที่สาคัญใน OOP • Class definitions • instance • Abstraction • Encapsulation • Inheritance • Polymorphism • Generic class • Class libraries • Message passing
  • 8. Object Oriented Programming • เขียนโปรแกรมเชิงวัตถุคือ – การนากระบวนทัศน์ต่าง ๆ มาใช้ในการพัฒนาซอฟต์แวร์ – การพัฒนาที่เน้นส่วนประกอบของซอฟต์แวร์ที่นากลับมาใช้ใหม่ได้ – ประหยัดเวลาในการพัฒนาและประหยัดค่าใช้จ่าย – ช่วยให้สามารถปรับปรุงและพัฒนาซอฟแวร์รุ่นที่ดีกว่าได้ง่ายขึ้น
  • 9. ออบเจ็กต์ (Object) Object คือ สิ่งที่นามาใช้ในการแก้ปัญหาที่สนใจ Object ประกอบด้วยคุณลักษณะ 3 ประการ คือ - identity ระบุได้ว่าสิ่งนั้นคืออะไร - attribute คุณสมบัติของสิ่งนั้น เหมือนหรือแตกต่างกับสิ่งอื่น - state มีสถานะหรือทาอะไรได้บ้าง (Method) เมื่อมีการ เปลี่ยนแปลงสถานะหรือค่าต่างๆในแต่ละช่วงเวลา
  • 10. Object-Oriented Programming การเขียนโปรแกรมคอมพิวเตอร์ ซึ่งให้ความสาคัญกับ อ็อบเจ็กต์ (Object) ที่นามาใช้เขียนโปรแกรม โดยการนิยามคลาส (Class) ขึ้นเพื่อ เป็นตัวแบบของกลุ่มอ็อบเจ็กต์ ทาให้สามารถนากลับไปใช้ในการปรับปรุงและพัฒนาได้สะดวก รวดเร็วขึ้น Class Object2 Object1
  • 11. ทาไมต้องใช้ OOP • เราสนใจแต่เขียนโค้ด เพื่อแก้ปัญหา • แต่วิธีการพัฒนา – ที่ถูกนามาใช้ไม่สามารถแก้ปัญหาได้ – เกิดจากในช่วง • analysis and design • Maintainability • ค่าใช้จ่ายส่วนใหญ่ – เกิดจากการพัฒนาและปรับปรุงต่อจากครั้งแรก • ต้องแน่ใจว่าซอฟต์แวร์ที่พัฒนาขึ้น – มั่นใจว่ามีประสิทธิภาพ – ง่ายต่อการดูแลรักษาในอนาคต
  • 12. Object Oriented Principles • Abstraction และ encapsulation เป็นหลักการพื้นฐานในการ พัฒนาซอฟต์แวร์ • Abstraction ช่วยให้สามารถพิจารณาความคิดที่ซับซ้อนได้ – ทราบรายละเอียด – ลดความสับสนและสิ่งที่ไม่เกี่ยวข้องได้ • Encapsulation ช่วยให้สามารถมุ่งเน้นสิ่งที่สนใจ – เมื่อพิจารณาวิธีการทางานได้ – รายละเอียดของวิธีการทางาน • polymorphism ช่วยให้สามารถใช้ประโยชน์จาก – Generalization/Specialization – โดยใช้การ inheritance (สืบทอด)
  • 13. Object Oriented Principles (ต่อ) • Generalization พิจารณาวัตถุที่มีคุณสมบัติทั่วไปและกาหนด ระดับชั้นย่อยๆ เฉพาะที่จะสืบทอด • Generalization / specialization กาหนดคุณลักษณะทั่วไป และการดาเนินงานของวัตถุที่แตกต่าง • กาหนดคุณลักษณะพิเศษเพิ่มเติมของวัตถุได้ • เมื่อสืบทอดจะได้รับลักษณะทั่วไปทั้งหมดของวัตถุแบบอัตโนมัติ และเพิ่มลักษณะพิเศษขึ้นได้ • Polymorphism สามารถขยายความสามารถให้กับวัตถุได้
  • 14. อะไรคือ Object Oriented Programming? • การพิจารณาวัตถุทางกายภาพ • การพิจารณาสิ่งที่เกี่ยวข้องกับวัตถุ • การเขียนโปรแกรมที่เกี่ยวข้องกับการสร้างองค์ความรู้ – ในรูปของโมเดลเพื่อแก้ปัญหาทางธุรกิจ – วัตถุมีสถานะและพฤติกรรมที่เกี่ยวข้องกับมัน ในแต่ละช่วงเวลา (สิ่งที่ โปรแกรมคอมพิวเตอร์ทาได้) • โลกแห่งความจริงที่มีความยุ่งยากและซับซ้อน – ต้องสร้างโมเดลจากโลกแห่งความจริง • มุ่งเน้นที่ปัญหาและตัดส่วนที่ไม่สนใจออก
  • 15. object oriented analysis and design techniques • ช่วยให้เข้าใจโลกความจริงและได้โมเดลที่เข้าใจง่าย • 'Class' คือการออกแบบซอฟต์แวร์ที่อธิบายคุณสมบัติทั่วไป โดยการสร้างแบบจาลองทางซอฟแวร์ • ‘Object’ ถูกสร้างขึ้นจากClass ที่ออกแบบสาหรับแทนแต่ละสิ่งที่ เกิดขึ้นจริง
  • 16. ประโยชน์ของวิธี OOP • ก่อนการพัฒนาซอฟต์แวร์ สิ่งแรกที่คุณต้องพัฒนาคือ แบบจาลอง เชิงวัตถุ • การสร้างแบบจาลองเชิงวัตถุ เน้นการวิเคราะห์และออกแบบ – แนวคิดที่ดีกว่า (แบบจาลองข้อมูลและพฤติกรรมร่วมกัน) – การบารุงรักษาที่ดีกว่า (เข้าใจมากขึ้น) – สามารถนามาใช้ดีกว่า (มีการห่อหุ้มวัตถุ)
  • 17. สรุป OOP • เขียนโปรแกรมเชิงวัตถุเกี่ยวข้องกับการสร้าง Class โดยการสร้าง แบบจาลองจากโลกแห่งความจริง • ช่วยให้สร้าง Class ที่มีคุณลักษณะพิเศษ โดยการสืบทอด พฤติกรรมของ Class หลักได้ • พฤติกรรมที่มีความแตกต่าง สามารถปรับเปลี่ยนหรือเพิ่มเติมได้ ตามความต้องการที่เปลี่ยนแปลง • สามารถเข้าถึงได้และไม่ต้องเปลี่ยนส่วนต่าง ๆ ของระบบ