งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

หน่วยที่ 1 แนวคิดของการเขียนโปรแกรมเชิงวัตถุ (Object-Oriented Programming Concepts)

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "หน่วยที่ 1 แนวคิดของการเขียนโปรแกรมเชิงวัตถุ (Object-Oriented Programming Concepts)"— ใบสำเนางานนำเสนอ:

1 หน่วยที่ 1 แนวคิดของการเขียนโปรแกรมเชิงวัตถุ (Object-Oriented Programming Concepts)

2 OOP 2/2550ดร.สุขสถิต มีสถิตย์2 วัตถุประสงค์ เพื่อให้นักศึกษาเข้าใจแนวคิดพื้นฐานของการเขียน โปรแกรมเชิงวัตถุ เพื่อให้นักศึกษาเข้าใจความสัมพันธ์ระหว่างแนวคิด ต่างๆ ของการเขียนโปรแกรมเชิงวัตถุ เพื่อให้นักศึกษาเข้าใจประโยชน์ของการเขียน โปรแกรมตามแนวคิดเชิงวัตถุ เพื่อให้นักศึกษาได้เรียนรู้สัญลักษณ์ที่ใช้ในการเขียน แผนภาพเพื่อแสดงการออกแบบโปรแกรมเชิงวัตถุ

3 OOP 2/2550ดร.สุขสถิต มีสถิตย์3 การเขียนโปรแกรมเชิงวัตถุ Object-Oriented Programming (OOP) โปรแกรมเชิงวัตถุ ( Object-Oriented Program ) คือ โปรแกรมที่ประกอบด้วยกลุ่มออบเจ็คที่ปฏิสัมพันธ์กัน การเขียนโปรแกรมเชิงวัตถุ คือการเขียนโปรแกรมโดย การนำกลุ่มของออบเจ็ค (Object) มาประกอบกันขึ้น เป็นโปรแกรม ข้อดี –เข้าใจง่าย - ลดช่องว่างระหว่างระบบจริงและระบบที่จำลอง โดยคอมพิวเตอร์ –ง่ายต่อการแก้ไข - เพราะข้อมูลและการทำงานอยู่ภายในออบ เจ็ค

4 OOP 2/2550ดร.สุขสถิต มีสถิตย์4 โปรแกรมตามแนวคิดเชิงวัตถุ Customer Mary Customer Bill Order 563 Customer Joe Chair 213 Order 143 Order 721 Chair 654 Lamp 453 Lamp 856 Button Text Box Label create get text display add new order add to order

5 OOP 2/2550ดร.สุขสถิต มีสถิตย์5 ออบเจ็คในชีวิตจริง สู่ ออบเจ็คในโปรแกรม ของจริง แบบจำลอง บ้าน รถยนต์ ทิชา อาศัยอยู่ใน ขับ บ้านรถยนต์ ทิชา

6 OOP 2/2550ดร.สุขสถิต มีสถิตย์6 ความเป็นมาของการเขียนโปรแกรมเชิงวัตถุ เริ่มในยุค ค.ศ.1960s –ภาษา Simula และจุดเริ่มต้นของแนวคิดในการใช้ ออบเจ็คเป็นแนวคิดพื้นฐานในการสร้างโปรแกรม จำลองสถานการณ์ ต้นยุค ค.ศ.1970s –เกิดภาษา SmallTalk ซึ่งเป็นภาษาเชิงวัตถุสำหรับใช้ งานทั่วไปภาษาแรก จากนั้นก็เกิดภาษาเชิงวัตถุอีกหลายภาษา เช่น Ada95, Eiffel, OO COBOL, Objective C, C++, Java, C#, J# และอื่นๆ

7 OOP 2/2550ดร.สุขสถิต มีสถิตย์7 หลักการเชิงวัตถุ (Object-Oriented Concepts) ออบเจ็ค (Object) คลาส (Class) เอ็นแคปซุเลชัน (Encapsulation) การซ่อนรายละเอียด (Information Hiding) การสืบทอดคุณสมบัติ (Inheritance) โพลีมอร์ฟิซึม (Polymorphism)

8 OOP 2/2550ดร.สุขสถิต มีสถิตย์8 ออบเจ็ค (Object) ออบเจ็ค คือ สิ่งที่สร้างขึ้นในโปรแกรม เพื่อจำลองสิ่ง ต่างๆ อยู่ในขอบเขตปัญหา ออบเจ็ค ใช้จำลองได้ทั้งสิ่งที่เป็น –รูปธรรม (เช่น นักศึกษา, หนังสือ) –นามธรรม (เช่น เหตุการณ์, การยืมหนังสือ) ออบเจ็ค มี –ข้อมูล (Data) – บอกสถานะ (State) คือสภาพ ของออบเจ็ค –พฤติกรรม (Behaviour) – สิ่งที่ออบเจ็คสามารถ ทำได้ เกี่ยวกับการจัดการข้อมูลของตัวเอง และ อื่นๆ ที่เกี่ยวข้อง

9 OOP 2/2550ดร.สุขสถิต มีสถิตย์9 คลาส (Class) คลาส = แม่แบบ (Template) ของออบเจ็ค คลาสกำหนดลักษณะของออบเจ็คที่จะถูกสร้าง ออบเจ็ค = อินสแตนซ์ (Instance) อินสแตนซ์ หมายถึงของชิ้นหนึ่งที่สร้างออกมาตาม แม่แบบ คลาสใช้กำหนด –กลุ่มแอททริบิว (attribute) ซึ่งออบเจ็คใช้ในการ เก็บข้อมูล –กลุ่มเมธอด (methods) ซึ่งอิมพลิเมนต์ฟฤติกรรม ของออบเจ็ค

10 OOP 2/2550ดร.สุขสถิต มีสถิตย์10 คลาส VS ออบเจ็ค คลาสกำหนดคุณสมบัติของออบเจ็ค ออบเจ็คของคลาสเดียวกันมีลักษณะเดียวกัน คือ –เก็บข้อมูลแบบเดียวกัน –ทำงานแบบเดียวกัน ออบเจ็คจะมีลักษณะเฉพาะของตนเอง –ค่าของข้อมูลที่เก็บจะต่างกันขึ้นอยู่กับสถานะของออบเจ็ค แต่ละตัว –ออบเจ็ค แต่ละตัวจะมีไอเด็นทิตี้ (identity) ไม่ซ้ำกัน

11 OOP 2/2550ดร.สุขสถิต มีสถิตย์11 ตัวอย่าง คลาส และ ออบเจ็ค ชื่อ อายุ เบอร์โทรศัพท์ ยืน() เดิน() ยิ้ม() มานะ:บุคคล ชื่อ = มานะ มีทรัพย์ อายุ = 30 ปี เบอร์โทรศัพท์ = มานี:บุคคล ชื่อ = มานี มีเพื่อน อายุ = 15 ปี เบอร์โทรศัพท์ = ออบเจ็คของ

12 OOP 2/2550ดร.สุขสถิต มีสถิตย์12 สัญลักษณ์แทนคลาสในแผนภาพยูเอ็มแอล (UML Diagrams) แบบย่อ : : แบบเต็ม

13 OOP 2/2550ดร.สุขสถิต มีสถิตย์13 สัญลักษณ์แทนออบเจ็คในแผนภาพยูเอ็มแอล : : แบบเต็ม : แบบย่อ

14 OOP 2/2550ดร.สุขสถิต มีสถิตย์14 เมสเสจ (Message) เมสเสจ คือข้อมูลที่ส่งไปยังคลาสหรือออบเจ็คเพื่อ สั่งให้ทำงาน ออบเจ็คปฏิสัมพันธ์ (Interact) กัน ด้วยการส่งเมส เสจไปให้กัน เมื่อออบเจ็คได้รับเมสเสจ จะเรียกเมธอดที่ตรงกับใน เมสเสจขึ้นมาทำงาน ฉะนั้น การส่งเมสเสจ = การเรียกใช้เมธอดของออบ เจ็คฝ่ายรับ ออบเจ็คฝ่ายส่งต้องรู้จักเมธอดที่ออบเจ็คฝ่ายรับมี ออบเจ็คฝ่ายรับอาจส่งค่าข้อมูล (Return value) กลับมา

15 OOP 2/2550ดร.สุขสถิต มีสถิตย์15 เมสเสจ (Message) เมสเสจประกอบด้วย –ออบเจ็คฝ่ายรับ –ชื่อเมธอดที่เรียก –อาร์กิวเมนต์ที่เมธอดต้องการ

16 OOP 2/2550ดร.สุขสถิต มีสถิตย์16 การส่งเมสเสจ current balance SV198:BankAccount Deposit(250.00) SV198:BankAccount getCurrentBalance() เมสเสจพร้อมอาร์กิวเมนต์ถูก ส่งไปยังออบเจ็ค SV198 ถามยอดเงินในบัญชี ยอดเงินของ SV198

17 OOP 2/2550ดร.สุขสถิต มีสถิตย์17 เอ็นแคปซุเลชัน (Encapsulation) หมายถึง การรวมข้อมูลและการทำงานที่เกี่ยวข้องไว้ ด้วยกันภายในออบเจ็ค ทำให้สามารถใช้งานออบเจ็คได้โดยไม่ต้องรู้ โครงสร้างภายในของออบเจ็ค ทำให้ง่ายต่อการควบคุมการเข้าถึงข้อมูลเพื่อป้องกัน ปัญหา

18 OOP 2/2550ดร.สุขสถิต มีสถิตย์18 การซ่อนรายละเอียด (Information Hiding) การซ่อนรายละเอียด (Information Hiding) หมายถึง การเปิดเผยเฉพาะข้อมูลที่จำเป็นต่อการเรียกใช้ ออบเจ็คเท่านั้น โดยรายละเอียดการทำงานภายในของ ออบเจ็คไว้ เปิดเผยลายเซ็นต์ของเมธอดที่ต้องการให้ออบเจ็คอื่น เรียกใช้ได้ ซ่อนการอิมพลิเมนต์ของเมธอดทุกตัวไว้ เลือกอนุญาตให้ออบเจ็คอื่นเข้าถึงแอททริบิวบางตัวได้ โดยตรง ใช้ร่วมกับเอ็นแคปซุเลชัน

19 OOP 2/2550ดร.สุขสถิต มีสถิตย์19 การสืบทอดคุณสมบัติ (Inheritance) หมายถึง การที่คลาสหนึ่งรับเอาคุณสมบัติของอีก คลาสหนึ่งมา และเพิ่มเติมใหม่คุณสมบัติ เป็นวิธีการในการออกแบบสิ่งสองสิ่งขึ้นไปที่ต่างกัน แต่มีลักษณะบางอย่างเหมือนกัน ช่วยลดเวลาในการเขียนโปรแกรม เนื่องจากทำให้ สามารถนำโค้ดกลับมาใช้ใหม่ได้ (Code reuse) ซุปเปอร์คลาส (Superclass) = คลาสที่ถ่ายทอด คุณสมบัติไปให้คลาสอื่น ซับคลาส (Subclasses) = คลาสที่สืบทอดคุณสมบัติ ของคลาสอื่นมา ซับคลาส เป็นชนิดหนึ่งของ (is-a, a-kind-of) ซุปเปอร์คลาส

20 OOP 2/2550ดร.สุขสถิต มีสถิตย์20 การสืบทอดคุณสมบัติ (Inheritance) คุณสมบัติสามารถสืบทอดต่อลงไปได้หลายลำดับชั้น เนื่องจาก ซับคลาสสามารถเป็นซุปเปอร์คลาสของ คลาสอื่นได้ ทำให้เกิดลำดับชั้นการสืบทอดคุณสมบัติ (Inheritance hierarchy) ยานยนต์ จักรยานยนต์ รถบรรทุก รถยนต์ส่วนบุคคลรถยนต์โดยสาร รถยนต์

21 OOP 2/2550ดร.สุขสถิต มีสถิตย์21 โพลีมอร์ฟิซึม (Polymorphism) แปลว่า หลายรูปแบบ สำหรับ OOP หมายถึง การที่ออบเจ็คต่างคลาสกัน ทำงานตอบสนองต่อเมสเสจที่เหมือนกันในรูปแบบ ที่แตกต่างกันอย่างเหมาะสม ทำให้สามารถใช้งานออบเจ็คโดยไม่ต้องทราบ คลาสของออบเจ็ค

22 OOP 2/2550ดร.สุขสถิต มีสถิตย์22 ข้อดีของการเขียนโปรแกรมเชิงวัตถุ ความเป็นธรรมชาติ –มองโปรแกรมในมุมที่สอดคล้องกับการมองสภาพรอบตัว ของมนุษย์ การนำกลับมาใช้ใหม่ (Reuse) –ส่งเสริมการใช้โค้ดที่มีอยู่แล้ว เอ็นแคปซุเลชันทำให้ สามารถนำออบเจ็คจากโปรแกรมหนึ่งไปใช้ในโปรแกรม อื่นได้ การรับถ่ายทอดโค้ดของคลาสอื่นมาผ่านการสืบ ทอดคุณสมบัติ ความง่ายในการบำรุงรักษา (Maintainability) –เอ็นแคปซุเลชันช่วยให้สะดวกในการหาจุดที่ผิดพลาด และเมื่อใช้ร่วมกันการซ่อนรายละเอียดช่วยลดผลกระทบ ที่จะเกิดขึ้นเมื่อมีการแก้ไขโปรแกรม โพลีมอร์ฟิซึ่มช่วย ช่วยลดผลกระทบเช่นกัน

23 OOP 2/2550ดร.สุขสถิต มีสถิตย์23 สรุป การเขียนโปรแกรมเชิงวัตถุมองโปรแกรมในเชิงของกลุ่ม ออบเจ็คที่เกี่ยวข้องในการทำงานของโปรแกรม แนวคิดเชิงวัตถุหมายถึงมองปัญหาในเชิงของออบเจ็คที่ เกี่ยวข้องกับปัญหา OOP เกี่ยวข้องกับ 1.การเรียนรู้ที่จะคิดในเชิงของการแปลงวัตถุในชีวิตจริงเป็นออบเจ็ค โปรแกรมในรูปของโค้ด ตามวัตถุประสงค์ของโปรแกรม 2.การเรียนรู้หลักการ (และคำศัพท์) ใหม่ที่ใช้ทั่วไปในด้านการเขียน โปรแกรมเชิงวัตถุ โดยไม่เกี่ยวกับภาษาโปรแกรม 3.การเรียนรู้การประยุกต์ใช้หลักการเชิงวัตถุในการออกแบบโปรแกรม 4.การเรียนรู้โครงสร้างเฉพาะของภาษาที่รองรับการเขียนโปรแกรมที่ ใช้หลักการเชิงวัตถุ

24 OOP 2/2550ดร.สุขสถิต มีสถิตย์24 ทบทวน 1. คลาสและออบเจ็ค –หนังสือ –ตัวอย่างออบเจ็ค หนังสือชื่อการวิเคราะห์เชิงวัตถุ –นางสาวดาวพระศุกร์ วงศ์สะอาด –คลาส ที่เป็นไปได้ นักศึกษา, คลาส ออบเจ็ค

25 OOP 2/2550ดร.สุขสถิต มีสถิตย์25 ทบทวน 2. ข้อมูลและพฤติกรรมของคลาสแมว ข้อมูลโอเปอเรชัน

26 OOP 2/2550ดร.สุขสถิต มีสถิตย์26 ทบทวน 3. การสืบทอดคุณสมบัติ เสื้อ

27 OOP 2/2550ดร.สุขสถิต มีสถิตย์27 แบบฝึกหัดหน่วยที่ 1 1.จงบอกประโยชน์ของการเขียนโปรแกรมเชิงวัตถุ 2.สถานะของออบเจ็คหมายความว่าอะไร? 3.จงจำแนกสิ่งต่อไปนี้ว่าสิ่งใดเป็นคลาส สิ่งใดเป็นออบเจ็ค –สมุด, บ้านเลขที่ 12/5, ขนม, นายสุภาพ เรียบร้อย 4.จงหาข้อมูลและพฤติกรรมที่เป็นไปได้ของออบเจ็คของ คลาสต่อไปนี้ –สุนัข, รถยนต์, โซฟา 5.จงแยกแยะว่าสิ่งใดเป็นซุปเปอร์คลาสและซับคลาส ต้นไม้, ไม้ดอก พนักงาน, ผู้จัดการ เค้ก, ขนม


ดาวน์โหลด ppt หน่วยที่ 1 แนวคิดของการเขียนโปรแกรมเชิงวัตถุ (Object-Oriented Programming Concepts)

งานนำเสนอที่คล้ายกัน


Ads by Google