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

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

หน่วยที่ 1 แนวคิดของการเขียนโปรแกรมเชิงวัตถุ

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


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

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

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

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

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

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

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

8 ออบเจ็ค (Object) ออบเจ็ค คือ สิ่งที่สร้างขึ้นในโปรแกรม เพื่อจำลองสิ่งต่างๆ อยู่ในขอบเขตปัญหา ออบเจ็ค ใช้จำลองได้ทั้งสิ่งที่เป็น รูปธรรม (เช่น นักศึกษา, หนังสือ) นามธรรม (เช่น เหตุการณ์, การยืมหนังสือ) ออบเจ็ค มี ข้อมูล (Data) – บอกสถานะ (State) คือสภาพของออบเจ็ค พฤติกรรม (Behaviour) – สิ่งที่ออบเจ็คสามารถทำได้ เกี่ยวกับการจัดการข้อมูลของตัวเอง และอื่นๆ ที่เกี่ยวข้อง ซอฟต์แวร์ออบเจ็ค ใช้ในการจำลองออบเจ็คที่มีอยู่จริงในโลก ซื่งคือสิ่งทั้งที่จับต้องได้และจับต้องไม่ได้ที่เราสามารถเข้าใจหรือจินตนาการได้ ออบเจ็คในธรรมชาติจะมีสถานะ (state) เป็นข้อมูลของตนเอง และสามารถทำกิจกรรมบางอย่างได้ และเปลี่ยนข้อมูลหรือทำการติดต่อตอบโต้กับวัตถุอื่น The two most important concepts in object-oriented programming are the class and the object. In the broadest term, an object is a thing, both tangible and intangible, which we can imagine. A program written in object-oriented style will consist of interacting objects. For a program to maintain bank accounts for a bank, for example, we may have many Account, Customer, Transaction, and ATM objects. An object is comprised of data and operations that manipulate these data. Attributes คือคุณลักษณะของออบเจ็คที่มีค่า behavior หรือ method อธิบายว่าออบเจ็คทำอะไรได้ An object is a software bundle of related variables and methods. Software objects are often used to model real-world objects you find in everyday life. เช่นในโปรแกรมที่รักษาบัญชีธนาคารของธนาคาร เราจะมีออบเจ็คที่เป็น account, customer, transaction ATM ออบเจ็ค มีข้อมูลและการดำเนินการที่จัดการกับข้อมูลเหล่านั้น (ใช้) ออบเจ็ค คือ สิ่งที่สร้างขึ้นในโปรแกรม เพื่อจำลองสิ่งต่างๆ อยู่ในขอบเขตปัญหา เป็นแอบสแตรกชัน (Abstraction) ของสิ่งต่างๆ ในขอบเขตปัญหา ออบเจ็ค ใช้จำลองได้ทั้งสิ่งที่เป็นรูปธรรม และนามธรรม ออบเจ็ค มี สถานะ (Data) - สภาวะของออบเจ็คในขณะเวลาหนึ่ง พฤติกรรม (Behaviour) - สิ่งที่ออบเจ็คสามารถทำได้ ไอเด็นทิตี้ (Identity) - ทุกออบเจ็คแตกต่างกัน OOP 2/2550 ดร.สุขสถิต มีสถิตย์

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

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

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

12 สัญลักษณ์แทนคลาสในแผนภาพยูเอ็มแอล (UML Diagrams)
<ชื่อคลาส> <ชื่อคลาส> <แอททริบิว 1> <แอททริบิว 2> : <แอททริบิว n> <เมธอด 1> <เมธอด 2> <เมธอด n> แบบย่อ This is how we represent a class. The name of a class appears inside the rectangle. The example shows two classes: Account and Motorcycle. แบบเต็ม OOP 2/2550 ดร.สุขสถิต มีสถิตย์

13 สัญลักษณ์แทนออบเจ็คในแผนภาพยูเอ็มแอล
<ชื่อออบเจ็ค>:< ชื่อคลาส> แบบย่อ This is how we represent a class. The name of a class appears inside the rectangle. The example shows two classes: Account and Motorcycle. To indicate the class of an object, we suffix the object name with a colon and the class name. The example shows an object SV198 is a BankAccount object. <ชื่อออบเจ็ค>:< ชื่อคลาส> <แอททริบิว 1> <แอททริบิว 2> : <แอททริบิว n> แบบเต็ม OOP 2/2550 ดร.สุขสถิต มีสถิตย์

14 เมสเสจ (Message) เมสเสจ คือข้อมูลที่ส่งไปยังคลาสหรือออบเจ็คเพื่อสั่งให้ทำงาน ออบเจ็คปฏิสัมพันธ์ (Interact) กัน ด้วยการส่งเมสเสจไปให้กัน เมื่อออบเจ็คได้รับเมสเสจ จะเรียกเมธอดที่ตรงกับในเมสเสจขึ้นมาทำงาน ฉะนั้น การส่งเมสเสจ = การเรียกใช้เมธอดของออบเจ็คฝ่ายรับ ออบเจ็คฝ่ายส่งต้องรู้จักเมธอดที่ออบเจ็คฝ่ายรับมี ออบเจ็คฝ่ายรับอาจส่งค่าข้อมูล (Return value) กลับมา An object is not a passive container of information. Rather, it is an active entity capable of carrying out tasks. Tasks such as deducting a withdrawal amount from an account, computing the shortest route from your dorm to a classroom, and so forth. To command an object (or a class) to do something, we send a message to it. Not all objects (and classes) can respond to any messages sent them. They must be programmed to recognize messages. In other words, we define methods. Once a method is defined, then we can send a matching message. For example, we define a method, say, move to a MobileRobot object. Once this method is programmed correctly, then we can send a message to a MobileRobot object to move. การส่งเมสเสจ = การเรียกใช้เมธอด ส่งผลให้ของคลาสหรือออบเจ็คเรียกเมธอดนั้นขึ้นมาทำงาน อื่นส่งผลให้ของคลาสหรือออบเจ็คเรียกเมธอดนั้นขึ้นมาทำงาน โปรแกรมเชิงวัตถุทำงานโดยอาศัยการปฏิสัมพันธ์ระหว่างออบเจ็ค หมายถึงการที่ออบเจ็คส่งเมสเสจไปถึงกัน เพื่อปฏิบัติภารกิจโดยการเรียกเมธอดของตัวเองขึ้นมาทำงาน คลาส หรือออบเจ็คต้องมีเมธอดตรงกับที่ส่งมาในเมสเสจจึงจะทำงานได้ เมสเสจ ที่ส่งไปยังออบเจ็คหรือคลาสประกอบด้วย ชื่อเมธอดและอาร์กิวเมนต์ ระบบเชิงวัตถุทำงานโดยอาศัยการปฏิสัมพันธ์ระหว่างออบเจ็ค หมายถึงการที่ออบเจ็คส่งเมสเสจไปถึงกัน โดยออบเจ็คที่ได้รับเมสเสจจะทำงานตามที่ได้รับการร้องขอ โดยการเรียกโอเปอร์ชันที่ตรงกับที่เมสเสจส่งมาทำงาน OOP 2/2550 ดร.สุขสถิต มีสถิตย์

15 เมสเสจ (Message) เมสเสจประกอบด้วย ออบเจ็คฝ่ายรับ ชื่อเมธอดที่เรียก
อาร์กิวเมนต์ที่เมธอดต้องการ An object is not a passive container of information. Rather, it is an active entity capable of carrying out tasks. Tasks such as deducting a withdrawal amount from an account, computing the shortest route from your dorm to a classroom, and so forth. To command an object (or a class) to do something, we send a message to it. Not all objects (and classes) can respond to any messages sent them. They must be programmed to recognize messages. In other words, we define methods. Once a method is defined, then we can send a matching message. For example, we define a method, say, move to a MobileRobot object. Once this method is programmed correctly, then we can send a message to a MobileRobot object to move. การส่งเมสเสจ = การเรียกใช้เมธอด ส่งผลให้ของคลาสหรือออบเจ็คเรียกเมธอดนั้นขึ้นมาทำงาน อื่นส่งผลให้ของคลาสหรือออบเจ็คเรียกเมธอดนั้นขึ้นมาทำงาน โปรแกรมเชิงวัตถุทำงานโดยอาศัยการปฏิสัมพันธ์ระหว่างออบเจ็ค หมายถึงการที่ออบเจ็คส่งเมสเสจไปถึงกัน เพื่อปฏิบัติภารกิจโดยการเรียกเมธอดของตัวเองขึ้นมาทำงาน คลาส หรือออบเจ็คต้องมีเมธอดตรงกับที่ส่งมาในเมสเสจจึงจะทำงานได้ เมสเสจ ที่ส่งไปยังออบเจ็คหรือคลาสประกอบด้วย ชื่อเมธอดและอาร์กิวเมนต์ ระบบเชิงวัตถุทำงานโดยอาศัยการปฏิสัมพันธ์ระหว่างออบเจ็ค หมายถึงการที่ออบเจ็คส่งเมสเสจไปถึงกัน โดยออบเจ็คที่ได้รับเมสเสจจะทำงานตามที่ได้รับการร้องขอ โดยการเรียกโอเปอร์ชันที่ตรงกับที่เมสเสจส่งมาทำงาน OOP 2/2550 ดร.สุขสถิต มีสถิตย์

16 เมสเสจพร้อมอาร์กิวเมนต์ถูกส่งไปยังออบเจ็ค SV198
การส่งเมสเสจ เมสเสจพร้อมอาร์กิวเมนต์ถูกส่งไปยังออบเจ็ค SV198 Deposit(250.00) SV198:BankAccount Here’s an example of sending a message. This slide shows a sending of the message deposit to SV198. The BankAccount class must include a method named deposit. Otherwise, there will be an error because SV198 won’t be able to recognize the message. The name of the message we send to an object or a class must be the same as the method’s name. Because they are the same, the phrase “calling an object’s method” is synonymous to “sending a message to an object.” The deposit method in the previous slide is an action-only method. An object takes some action when called, but returns no answer back to the caller. The getCurrentBalance method in this slide is a value-returning method. When called, an object will return a value. Here’s an example of calling a class method. It is not as common as the instance methods, but it can be handy in certain situations. The maximum speed of all MobileRobot objects is the same. Since the result is the same for all instances, we define getMaximumSpeed as a class method. General Idea: You define an instance method for a task that relates uniquely to individual instances (like getCurrentSpeed, which is different for individual mobile robots) and a class method for a task that relates to all instances of the class collectively. ถามยอดเงินในบัญชี getCurrentBalance() SV198:BankAccount current balance ยอดเงินของ SV198 OOP 2/2550 ดร.สุขสถิต มีสถิตย์

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

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

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

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

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

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

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

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

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

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

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


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

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


Ads by Google