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

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

บทที่ 4 Aggregation Abstraction ในบทที่แล้วได้พูดถึง Classification Abstraction ไป แล้ว ซึ่งเป็นกระบวนการสร้าง Class จาก Object ต่าง ๆ ที่มีอยู่ใน Problem.

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


งานนำเสนอเรื่อง: "บทที่ 4 Aggregation Abstraction ในบทที่แล้วได้พูดถึง Classification Abstraction ไป แล้ว ซึ่งเป็นกระบวนการสร้าง Class จาก Object ต่าง ๆ ที่มีอยู่ใน Problem."— ใบสำเนางานนำเสนอ:

1 บทที่ 4 Aggregation Abstraction ในบทที่แล้วได้พูดถึง Classification Abstraction ไป แล้ว ซึ่งเป็นกระบวนการสร้าง Class จาก Object ต่าง ๆ ที่มีอยู่ใน Problem Domain จนได้ Class แต่ยัง ขาดความสัมพันธ์ระหว่าง Class ต่าง ๆ ที่เราสร้างขึ้น จากสภาพความเป็นจริงในโลกนี้จะพบว่ายังมีวัตถุ หลาย ๆ อย่างที่เกิดจากการรวมตัวของวัตถุอื่น ๆ เช่น คนเกิดจากการวมกันของ ลำตัว แขน ขา หัว หรือ คอมพิวเตอร์เกิดจากการรวมของ Case, main board, monitor, Drive หรือแม้แต่โลกเราก็ยัง ประกอบไปด้วย ดิน น้ำ อากาศ และแร่ธาตุ ต่าง ๆ เป็นต้น

2 ตัวอย่าง 4.1 “ ห้องเรียนประกอบไปด้วย กระดานดำ 1 กระดาน มีเก้าอี้และโต๊ะจำนวนหนึ่ง มีนักศึกษา มีอาจารย์ ” จากข้อความข้างต้น สามารถสรุปได้ว่า class กระดานดำ class โต๊ะ class เก้าอี้ class นักศึกษา class อาจารย์ เมื่อนำมารวมกันจะได้ class ใหม่ คือ class ห้องเรียน

3 ห้องเรียน กระดานดำโต๊ะเก้าอี้ นักศึกษา อาจารย์

4 ห้องเรียน กระดานดำโต๊ะเก้าอี้ นักศึกษา อาจารย์ ถ้ามองในทางกลับกันจะได้ว่า Class ห้องเรียนสามารถแบ่งออกได้เป็น Class กระดานดำ Class โต๊ะ Class เก้าอี้ Class นักศึกษา Class อาจารย์ มองในมุมของ Decomposition

5 Aggregation Abstraction คือ การ พยายามตอบคำถามที่ว่า มี class ใดเป็น ส่วนประกอบ (Is part of) ของ class อื่นหรือไม่ และ ที่สำคัญ “ การประกอบกันของ class ต้องทำให้เกิด class ใหม่ ซึ่งมี concept ใหม่ด้วย ” ในทาง object orientation นั้น การแสดงสัญลักษณ์ เพื่อแสดง Aggregation Abstraction ของ class นั้น ทำได้โดยการโยงลูกศรเป็นสี่เหลี่ยมขนมเปียกปูน จาก class ย่อยหรือ class ที่เป็นส่วนประกอบ (Composite class) ไปยัง Class หลัก (Main Class) ดังแสดงในรูป

6 ห้องเรียน กระดานดำโต๊ะเก้าอี้ นักศึกษา อาจารย์ การเป็นส่วนหนึ่ง (Is part of) สามารถเขียนแทนด้วย สัญลักษณ์

7 ห้องเรียน กระดานดำโต๊ะเก้าอี้ บางครั้งอาจเกิดกรณีที่ class หนึ่งสามารถเป็น class ย่อยของ class หนึ่ง ได้พร้อมทั้งยังเป็น class ย่อยของอีก class หนึ่งได้เช่นกัน บุคลากร อาจารย์ นักศึกษา

8 รถยนต์ ที่นั่งล้อประตู บางครั้งอาจเกิดกรณีที่ class หนึ่งสามารถเป็น class ย่อยของ class หนึ่ง ได้พร้อมทั้งยังเป็น class ย่อยของอีก class หนึ่งได้เช่นกัน เรือยนต์ ไฟ เครื่องยนต์

9 ? ??? บางครั้งอาจเกิดกรณีที่ class หนึ่งสามารถเป็น class ย่อยของ class หนึ่ง ได้พร้อมทั้งยังเป็น class ย่อยของอีก class หนึ่งได้เช่นกัน ? ? ? Computer

10 Cardinality, Required Component,Optional Component สำหรับ Aggregation Abstraction การประกอบกันของ class หรือความสัมพันธ์เชิง is part of นั้นอาจจะเกิด กรณี ที่ class หลัก (main class) ประกอบไปด้วย class ย่อย (Composite class ) ชนิดที่หรึ่ง เพียงชิ้นเดียว แต่ประกอบด้วย class ชนิดที่สอง จำนวน 4 ชิ้นขึ้นไป และอาจจะประกอบไปด้วยชนิดที่สาม ไม่จำกัดจำนวน หรืออาจไม่มีเลยก็ได้ ซึ่งสิ่งที่ใช้ในการแสดงความสัมพันธ์ ดังกล่าวนี้เรียกว่า Cardinality

11 Cardinality, Required Component,Optional Component ในทาง OO เราเรียก Class ย่อย ว่า Component นั่นเอง โดย จำเป็น เราเรียกส่วนประกอบที่จำเป็นต้องมีว่า Require Component เช่น รถยนต์ต้องมีเครื่องยนต์ ถ้าไม่มีเครื่องยนต์ รถยนต์ก็ ไม่สามารถวิ่งได้ นั่นเอง ไม่จำเป็น เราเรียกส่วนประกอบที่ไม่จำเป็นต้องมีว่า Optional Component เช่น เครื่องปรับอากาศในรถยนต์ไม่จำเป็นต้องมีก็ ได้ หมายถึงไม่มีเครื่องปรับอากาศรถยนต์ก็ยังสามารถ วิ่งได้

12 Cardinality, Required Component,Optional Component ห้องเรียน กระดานดำโต๊ะเก้าอี้ นักศึกษา อาจารย์ mandatory

13 Cardinality, Required Component,Optional Component รถ เก๋ง กระโปรงรถเครื่องยนต์ประตู เครื่องปรับอากาศ ล้อ

14 Cardinality, Required Component,Optional Component หนัง สือ ปกคำนำสารบัญ บรรณานุกรม บท N 1..1

15 หนังสือหนังสือ ปกปกคำนำคำนำสารบัญสารบัญบทของเนื้อหาบทของเนื้อหาบรรณานุกรมบรรณานุกรม n 1..1 ต. ย. การเขียน cardinality ของ class หนังสือ

16 บทของเนื้อหาบทของเนื้อหา หน้าหนังสือหน้าหนังสือ 1..n

17 หน้าหนังสือหน้าหนังสือ ตัวหนังสือตัวหนังสือรูปภาพรูปภาพ 0..n ต. ย. การเขียน cardinality ของ class หน้า หนังสือ

18 หนังสือหนังสือ ปกปกคำนำคำนำสารบัญสารบัญบทของเนื้อหาบทของเนื้อหาบรรณานุกรมบรรณานุกรม n 1..1 ต. ย. การเขียน cardinality ของ class หนังสือ หน้าหนังสือ ตัวหนังสือ รูปภาพ 0..n 1..n

19 หนังสือ - รหัสหนังสือ + ชื่อหนังสือ + อ่าน + พิมพ์ หนังสือ - รหัสหนังสือ + ชื่อหนังสือ + อ่าน + พิมพ์ ปกหนังสือ + ประเภทของปก + พลิก ปกหนังสือ + ประเภทของปก + พลิก คำนำ - เนื้อความ - ชื่อผู้แต่ง + อ่าน คำนำ - เนื้อความ - ชื่อผู้แต่ง + อ่าน สารบัญ - เนื้อความ + อ่าน สารบัญ - เนื้อความ + อ่าน บทของเนื้อหา - เนื้อหาแต่ละบท + อ่าน บทของเนื้อหา - เนื้อหาแต่ละบท + อ่าน บรรณานุกรม - เนื้อความ + อ่าน บรรณานุกรม - เนื้อความ + อ่าน n 1..1 ต. ย. การเขียน cardinality ของ class หนังสือ หน้าหนังสือ - เนื้อหาแต่ละหน้า - พลิก - อ่าน หน้าหนังสือ - เนื้อหาแต่ละหน้า - พลิก - อ่าน ตัวหนังสือ - อักขระ + สะกด ตัวหนังสือ - อักขระ + สะกด รูปภาพ - ภาพ + ดู รูปภาพ - ภาพ + ดู 0..n 1..n

20 ASSIGNMENT จงเขียน class diagram ที่แสดง Aggregation Abstration ของ Computer PC จงเขียน class diagram ที่แสดง Aggregation Abstration ของ โทรศัพท์มือถือ (Mobile) จงเขียน class diagram ที่แสดง Aggregation Abstration ของ สมุดธนาคาร (Bank Account)

21 Aggregation A unfilled diamond shows aggregation. This relationship indicates that one is PART of the other. An Employee is PART of a division. But a division can stand on its own without Employees.

22 The Person Class

23 Composite Aggregation A filled diamond shows Composite Aggregation. This relationship indicates that one is PART of the other. An OrderDetail is PART of an order. But an Order CANNOT stand on its own without Order Details.

24 บทที่ 5 บทที่ 5 Generalization Abstraction เพื่อให้ผู้อ่านเข้าใจหลักการของ Generalization Abstraction และการ Inheritance เพื่อให้ผู้อ่านเข้าใจวัตถุประสงค์ กลไก และ วิธีการทำ inheritance เพื่อให้ผู้อ่านสามารถแยกความแตกต่างและ สร้างความสัมพันธ์ระหว่าง Super class และ Sub class ได้

25 Polymorphism in VB.NET Public Class Shape Public Overridable Sub draw() MsgBox("Draw Shape") End Sub End Class Public Class Rectangle Inherits Shape Public Overrides Sub draw() MsgBox("Draw Rec ") End Sub End Class Public Class Circle Inherits Rectangle Public Overrides Sub draw() MsgBox("Draw Circle ") End Sub End Class -Prefix Overridable before Base Method -Prefic Overrides before derived class

26 Polymorphism in VB.NET Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim s As Shape = New Shape s.draw() Dim s1 As Rectangle = New Rectangle s1.draw() Dim s3 As New Circle s3.draw() End Sub

27 Polymorphism in VB.NET Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim s As Shape = New Shape s.draw() Dim s1 As Rectangle = New Rectangle s1.draw() Dim s3 As New Circle s1 = s3 s1.draw() End Sub

28 No polymorphism Public Class Shape Public Overridable Sub draw() MsgBox("Draw Shape") End Sub End Class Public Class Rectangle Inherits Shape Public Overrides Sub draw() MsgBox("Draw Rec ") End Sub End Class Public Class Circle Inherits Rectangle Public Overrides Sub draw() MsgBox("Draw Circle ") End Sub End Class Public Class Triangle Inherits Shape Public Shadows Sub draw() MsgBox("Draw Circle ") End Sub End Class Dim s As Shape = New Shape s.draw() Dim s1 As Rectangle = New Rectangle s1.draw() Dim s3 As New Circle s1 = s3 s1.draw()

29 Calling Base Method Public Class Shape Public Overridable Sub draw() MsgBox("Draw Shape") End Sub End Class Public Class Rectangle Inherits Shape Public Overrides Sub draw() MsgBox("Draw Rec ") End Sub End Class Public Class Circle Inherits Rectangle Public Overrides Sub draw() MsgBox("Draw Circle ") MyBase.draw() End Sub End Class Mybase


ดาวน์โหลด ppt บทที่ 4 Aggregation Abstraction ในบทที่แล้วได้พูดถึง Classification Abstraction ไป แล้ว ซึ่งเป็นกระบวนการสร้าง Class จาก Object ต่าง ๆ ที่มีอยู่ใน Problem.

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


Ads by Google