Lec03 3 Generalization Abstraction...
Transcript of Lec03 3 Generalization Abstraction...
![Page 1: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/1.jpg)
http://www.siam2dev.com [ dr. nattapong songneam]
โดย อ.ดร. นฐพงศ สงเนยมhttp://[email protected]
สาขาวชา สาขาวชาเทคโนโลยสารสนเทศและวทยาการคอมพวเตอร
คณะวทยาศาสตรและเทคโนโลย มหาวทยาลยราชภฏพระนคร
Last Update : 28/11/2560
Lec03_3_Generalization Abstraction
InformationTechnology
Tหากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 2: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/2.jpg)
Abstractions
• Classification abs.• Aggregation abs.• Generalization/Specialization abs.• Association abs.
![Page 3: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/3.jpg)
OOP
• Reusable• Polymorphism• Override• Overloading
กน() กน()
![Page 4: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/4.jpg)
อ.ดร. นฐพงศ สงเนยม
• Website : http://www.siam2dev.com• Website สาขา: http://it.pnru.ac.th
• E-mail1 : [email protected]• E-mail2 : [email protected]• E-mail3 : [email protected]• Facebook : [email protected]
http://www.siam2dev.com [ dr. nattapong songneam]
![Page 5: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/5.jpg)
Lec03_3_Generalization Abstraction
• เพอใหผอานเขาใจหลกการของ Generalization Abstraction และการ Inheritance
• เพอใหผอานเขาใจวตถประสงค กลไก และวธการทา inheritance
• เพอใหผอานสามารถแยกความแตกตางและสรางความสมพนธระหวาง Super class และ Sub class ได
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 6: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/6.jpg)
Generalization Abstraction
• Generalization Abstraction คอกระบวนการในการนา Class ทมลกษณะเหมอนหรอคลายกนหรอมคณสมบตอยางใดอยางหนงรวมกน (General) มาจดหมวดหมไวเปน Class เดยวกน ซงกระบวนการยอนกลบของ Generalization Abstraction เรยกวา Specialization คอการตอบคาถามวาใน Class หนง ๆ นนสามารถจาแนกเปน Class อะไรไดบาง
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 7: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/7.jpg)
Classification Abs.
• เอาวตถ ทมลกษณะเหมอนกน / คลายกน จดใหอยใน
กลมเดยวกน ซงกลมคอ คลาส
ปากกา สแดง ปากกา สนาเงน ปากกา ดามทหนง
TYPEกลมปากกา
![Page 8: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/8.jpg)
Generalization
• เอาคลาส ทมลกษณะเหมอนกน / คลายกน จดใหอยในกลมเดยวกน
ซงกลมคอ คลาส
• ตดสวนทแตกตางออก
• พจารณาเฉพาะสวนทเหมอนกน
แมว สนข วว
สตวเลยง
Is kind of
เปนชนดของclass
class
Is member ofIs part ofIs kind of
![Page 9: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/9.jpg)
แมว วว
สตวเลยง
Is kind of
เปนชนดของclass
class
Tom คณทองแดง ววสแดง
Is member ofIs member ofIs member of
สนข
![Page 10: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/10.jpg)
General & Special
![Page 11: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/11.jpg)
รถบรรทกคณสมบต : คณสมบตของรถยนต
+ สามารถบรรทกของได
รถยนตคณสมบต : คณสมบตของรถยนต
+ ใชโดยสาร ม 4 ประต
รถสปอรตคณสมบต : คณสมบตของรถเกง+วงไดเรวกวา + เปดประทนได
ยานพาหนะคณสมบต : มลอ
มเครองยนต
Intensive: ถาเราบอกวารถบรรทก และรถเกง ตางกมลอ และมเครองยนตนนแปลวาสองสงนมลกษณะรวมกนเปนการมองในลกษณะของ Generalization Abstraction
ถาเราเจอสงหนงทมลอ
มเครองยนต เราเรยกวา
เปนยานพาหนะ
มลอ
มเครองยนต
![Page 12: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/12.jpg)
Generalization/Specialization
• เตม/เพม >> special• ลดทอน >> general
![Page 13: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/13.jpg)
เตมตนตะขาบเขาไป
กลายเปนอกสงหนงเรยก รถตนตะขาบ
เตมตนตะขาบเขาไป
กลายเปนอกสงหนงเรยก รถตนตะขาบ
+ เตมทตกดน / ขดดนเขาไป
เตมตนตะขาบเขาไป
กลายเปนอกสงหนงเรยก รถตนตะขาบ
+ เตมปนใหญ เขาไป กลาย เปน รถถง
![Page 14: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/14.jpg)
จงอธบายความหมายของภาพทกาหนดใหในเชงของ Generalization Abstraction
อาจารยคณสมบต : คณสมบตของบคลากร
+ สอน
จนท.คณสมบต : คณสมบตของบคลากร
+ ปฏบตงาน
บคลากรของมหาวทยาลยคณสมบต : มชอ + มสวสดการ+ ทางานภายในมหาวทยาลย
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 15: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/15.jpg)
จงอธบายความหมายของภาพทกาหนดใหในเชงของ Generalization Abstraction
หองตรวจโรคทวไปคณสมบต : ตรวจโรคทวไป
เฉพาะทาง.คณสมบต : ตรวจโณคเฉพาะทาง
หองตรวจโรคคณสมบต : มแพทย และตรวจโรคได
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 16: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/16.jpg)
จงอธบายความหมายของภาพทกาหนดใหในเชงของ Generalization Abstraction
ผปวยภายใน รพ.คณสมบต : คณสมบตของผปวย
+ นอนท รพ.
ผปวยภายนอก รพ.คณสมบต : คณสมบตของผปวย
+ กลบบานได
ผปวยคณสมบต : เปนโรค
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 17: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/17.jpg)
Generalization Abstraction
• ขอสงเกต
– ถาเราคลาสยอย หลายๆ คลาสแลวมคณสมบตรวมกนได แลวทาใหเกดความคดรวบยอดใหม(concept) ได และจดอยในคลาสเดยวกน เรยกวา Generalization Abstraction
– แตถามคณสมบตรวมกน แตไมเกดความคดรวบยอดใหม กไมจาเปนจะตองรวมกนเปนคลาสเดยว
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 18: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/18.jpg)
จากตวอยางทกาหนดใหตอไปน จงพจารณาวาคลาส อะไรสามารถรวมกนได และถารวมกนไดจะไดคลาสอะไร และคลาสใดทรวมกนไมได
1. คน , สตว , พช , ________________2. ผหญง , ผชาย ________________3. คนเสอแดง , คนเสอเหลอง _________________4. แมว , สนข , ไก _________________5. โทรศพทมอถอ , คอมพวเตอร , โทรทศน , ตเยน , หมอหงขาว ______________________________
6. เสอ , กางเกง , ผาขาวมา , หมวก _________________7. โตะ , เกาอ , กระดานดา , อาจารย , นกศกษา
____________________________________
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 19: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/19.jpg)
เพศ
ผหญง ผชาย
*** ไมถกตอง
![Page 20: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/20.jpg)
สงมชวต
สตว คน พช
-มชวต
-กน
-หายใจ
![Page 21: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/21.jpg)
หองเรยน
นกเรยนโตะ อาจารย
![Page 22: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/22.jpg)
บคคล
ผชายผหญง
คน
ผชายผหญง
![Page 23: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/23.jpg)
คนไทย
กลมคนเสอเหลองกลมคนเสอแดง
คนไทย ใสเสอ
อยในไทย
![Page 25: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/25.jpg)
• Aggregate >> ประกอบกน
• Specialization >> แบง/แยกยอย ออกเปน
โตะเตยง
เกาอ
โตะ
หองเรยน
class
class
class
class
Is aNot is a
เกาอ
เฟอรนเจอร
![Page 28: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/28.jpg)
COMPUTER
MAC
PC
ใช OS เปนเกณฑในการแบง
![Page 29: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/29.jpg)
Laptop
DeskTop
+ พกพาได()
+ ใชแบตเตอรร ()
- แบตเตอรร
+ ต งโตะ
- Case
COMPUTER
- ใชพลงงานไฟฟา
- Monitor
ใช portable เปนเกณฑในการแบง
![Page 30: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/30.jpg)
จากรปในสไลดกอนหนา
• จงอธบายในเชงของ Generalization Abstractions• จงอธบายในเชงของ Specialization Abstractions• จงอธบายในเชงของ Encapsulation• จงอธบายในเชงของ Information Hiding
![Page 31: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/31.jpg)
Specialization abstraction
• จากรปกอนหนาน สามารถอธบายในเชงของ specialization abstraction ไดวา “เราสามารถแบงประเภทของคอมพวเตอรตามลกษณะการใชงานได 2 ประเภทคอ 1. Desktop 2. Laptop ”
Intensiveทง Desktop และ LabTop ตางกเปนเครองใชไฟฟา และ
ประมวลผลได แตตางกนตรงท LabTop สามารถพกพาไปได desktop ไมสะดวกทจะพกพา
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 32: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/32.jpg)
ขอสรป สาหรบ specialization
1. เราพจารณาดวาคลาสหนงๆ แบงออกเปนคลาสยอยอะไรไดบาง2. ในการแบงออกเปนคลาสสามารถทาไดหลายประเภท/วธข นอย
กบวาเราจะใชเกณฑอะไร เปนตวแบง3. ถาแบงแลวมลกษณะพเศษขนมา กควรแบง4. การแบงกคอการเจาะจงลงไป วามลกษณะพเศษอะไรบางจง
เรยกวา special5. การแบงกคอการเอาจดทแตกตางกนของแตละคลาสมาแบง
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 33: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/33.jpg)
Laptop
DeskTop
+ พกพาได()
+ ใชแบตเตอรร ()
- แบตเตอรร
+ ต งโตะ()
- Case
COMPUTER
- ใชพลงงานไฟฟา
- Monitor
ตเยนเปนคอมพวเตอรหรอไม?
ทวเปนคอมพวเตอรหรอไม?
พดลมเปนคอมพวเตอรหรอไม?
![Page 34: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/34.jpg)
Laptop
DeskTop
+ พกพาได()
+ ใชแบตเตอรร ()
- แบตเตอรร
+ ต งโตะ()
- Case
COMPUTER
- ใชพลงงานไฟฟา
- Monitor
![Page 35: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/35.jpg)
Supper Computer Mainframe Mini
ComputerMicro
Computer
COMPUTER
วธแบงโดยใชขนาดเปนเกณฑ
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 36: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/36.jpg)
จากภาพกอนหนา สามารถอธบายในเชงของ specialization abstraction ไดวา
• อธบายไดวา คอมพวเตอรแบงออกเปน 4 ประเภทคอ SuperComputer , MainFrame , Mini , Micro โดยแบงตามขาด
Intensiveทง 4 ประเภท ตางกเปนคอมพวเตอร ทใชไฟฟาและประมวลผลได แตตางกนตรงท ขนาด
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 37: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/37.jpg)
Generalization/Specialization
จากรปกอนหนานอธบายในเชงของ Generalization Abstraction ไดวา “super computer mainframe mini computer และ micro computer ตางกคณสมบตรวมกนคอ ใช ไฟฟา และ สามารถคานวณไดเราจงจดรวมกนเปนคลาสเดยวกนนนกคอ คลาส Computer” และไดทางกลบกน (Flip side) อธบายในเชงของ specialization abstraction ไดวา “เราสามารถแบงคอมพวเตอรออกเปนประเภทตางๆ ได 4 ประเภทคอ 1. super computer 2. Mainframe 3. Mini coomputer และ 4. Micro Computer”
![Page 38: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/38.jpg)
ทพกอาศย = ทซ งมนษยสามารถเขาไปอยอาศยได
อพารตเมนต = ทพกอาศย + มลกษณะเปนหองเดยว
บานทาวนเฮาส = ทพกอาศย + เปนบานทเรยงตดกน
จากรป เปนการอธบาย “ทพกอาศย จาแนกเปน อพารตเมนต และบานทาวนเฮาส” จะเหนวา เราใช Specialize เพอสรางอพารตเมนต และทาวนเฮาสขน ในขณะเดยวกน เราใช Generalize เพอทาใหอพารตเมนต และทาวนเฮาสม Concept รวมเดยวกน นนคอ ทงอพารตเมนตและทาวนเฮาสตางกใชเพอเปนทอยอาศยของมนษย ซงนคอ Concept ของทอยอาศย
คอนโด
![Page 39: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/39.jpg)
ทพกอาศย = ทซ งมนษยสามารถเขาไปอยอาศยได
อพารตเมนต = ทพกอาศย + มลกษณะเปนหองเดยว
บานทาวนเฮาส = ทพกอาศย + เปนบานทเรยงตดกน
จากรป เปนการอธบาย “ทพกอาศย จาแนกเปน อพารตเมนต และบานทาวนเฮาส” จะเหนวา เราใช Specialize เพอสรางอพารตเมนต และทาวนเฮาสขน ในขณะเดยวกน เราใช Generalize เพอทาใหอพารตเมนต และทาวนเฮาสม Concept รวมเดยวกน นนคอ ทงอพารตเมนตและทาวนเฮาสตางกใชเพอเปนทอยอาศยของมนษย ซงนคอ Concept ของทอยอาศย
![Page 41: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/41.jpg)
สตวปกคณสมบต : มปก
มขา 2 ขา
นกคณสมบต : คณสมบตของสตวปก +
บนได
ไกคณสมบต : คณสมบตสตวปก
+ ขนได
ไกชนคณสมบต : คณสมบตไก
+ ขนได + ชนไกได
เครองบนเปนสตวปกหรอไม ?
นกเพนกวนเปนสตวปกหรอไม ?
นกกระจอกเทศเปนสตวปกหรอไม ?
![Page 42: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/42.jpg)
สตวปกคณสมบต : มปก
มขา 2 ขา
นกคณสมบต : คณสมบตของสตวปก +
บนได
ไกคณสมบต : คณสมบตสตวปก
+ ขนได
ไกชนคณสมบต : คณสมบตไก
+ ขนได + ชนไกได
เครองบนเปนสตวปกหรอไม ?
นกเพนกวนเปนสตวปกหรอไม ?
นกกระจอกเทศเปนสตวปกหรอไม ?ไกไขคณสมบต : คณสมบตไก + ? + ?
ไกพนธเนอคณสมบต : คณสมบตไก + ? + ?
![Page 43: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/43.jpg)
สตวนา- อาศยในนา
ป ปลา- มครบ
???Practice IIจงเขยนความสมพนธของสตวบก ในเชง Generalization และ Specialization
![Page 44: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/44.jpg)
ตวอยาง ของการทา Specialize เพ อทาให รถยนต กลายเปนรถสปอรต และการทา Generalize เพ อใหรถสปอรตกลายมาเปนรถยนต
จากรปจะพบวา การทา Specialize เพอทาให รถยนตกลายเปนรถสปอรต ทาไดโดยการเพมเตมสวนของเครองยนต Turbo และความสามารถในการเปดประทนไดเขาสรถยนตปกต และในทางกลบกนการทา Generalize เพอใหรถสปอรตกลายเปนรถยนตกทาไดโดยการเอาเครองยนต Turbo และหลงคาเปดประทนไดออกจากรถสปอรตน นเอง
Spec
ializ
eรถยนต
รถสปอรต = รถยนต + เครองยนต Turbo + เปดประทนได
![Page 46: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/46.jpg)
ตวอยางใน C# : Add Class
![Page 47: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/47.jpg)
Has a(require component)
![Page 48: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/48.jpg)
Reserved for child class
![Page 49: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/49.jpg)
สราง คลาสลก sub class / child class / derive class
Inherit from class car
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 50: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/50.jpg)
![Page 51: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/51.jpg)
สตว
สตวบก สตวครงบกครงนา สตวปกสตวนา
สตวเลอยคลาน สตวนาจด สตวทะเล
สตวเลยงลกดวยนม
คน
ผหญงผชาย
![Page 52: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/52.jpg)
ตวอยางท 5.8
องคเจท ดอตเมตรกซGe
nera
lizat
ion
Spec
ializ
atio
n
Gene
raliz
atio
n
Spec
ializ
atio
n
รานคอมพวเตอร
โปรเจคเตอร เครองพมพ
Gene
raliz
atio
n
Spec
ializ
atio
n
เลเซอรคอมพวเตอร
พกพา
คอมพวเตอรตง
โตะ
คอมพวเตอร
![Page 53: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/53.jpg)
คน
อาจารยนกศกษา
1
2
![Page 54: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/54.jpg)
คน- รหสประจาตวประชาชน
-ชอ-สกล
-ทอย
+บอกชอ-สกลได()
นกศกษา- รหสประจาตวประชาชน
-ชอ-สกล
-ทอย
+บอกชอ-สกลได()
อาจารย- รหสประจาตวประชาชน
-ชอ-สกล
-ทอย
+บอกชอ-สกลได()
เมอเพมรายละเอยดลงไป
![Page 55: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/55.jpg)
สราง Project ใหม
![Page 56: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/56.jpg)
ADD Class
![Page 57: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/57.jpg)
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 58: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/58.jpg)
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 59: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/59.jpg)
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 60: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/60.jpg)
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 61: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/61.jpg)
ออกแบบหนาจอ เพอรบชอ นามสกล รหส ทอย
txtID txtFullname
txtAddress
btnCancel
btnOK
lbDisplay
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 63: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/63.jpg)
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 64: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/64.jpg)
จะเหนไดวา คลาสอาจารย สามารถเขาถงหรอเรยกใช attribute / function จากคลาสพอแม หรอคลาส person ไดโดยไมตองมา
สรางใหม
![Page 65: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/65.jpg)
![Page 67: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/67.jpg)
คน- รหสประจาตวประชาชน
-ชอ-สกล
-ทอย
+บอกชอ-สกลได()
นกศกษา- รหสประจาตวประชาชน
-ชอ-สกล
-ทอย
+บอกชอ-สกลได()
อาจารย
เมอเพมรายละเอยดลงไป
อาจารยประจาอาจารยพเศษ
![Page 68: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/68.jpg)
คน- รหสประจาตวประชาชน
-ชอ-สกล
-ทอย
+บอกชอ-สกลได()
นกศกษา อาจารย
เมอเพมรายละเอยดลงไป
อาจารยประจาอาจารยพเศษ
นศ. ภาคปกตนศ. ภาคพเศษ
![Page 69: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/69.jpg)
คน- รหสประจาตวประชาชน
-ชอ-สกล
-ทอย
+บอกชอ-สกลได()
นกศกษา อาจารย
เมอเพมรายละเอยดลงไป
อาจารยประจาอาจารยพเศษ
นศ. ภาคปกตนศ. ภาคพเศษ
นศ. ผชายนศ. ผหญง
![Page 70: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/70.jpg)
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 71: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/71.jpg)
คน- รหสประจาตวประชาชน
-ชอ-สกล
-ทอย
+บอกชอ-สกลได()
นกศกษา- รหสประจาตวนกศกษา
- ผลการเรยน
อาจารย- รหสอาจารย
- สาขาวชา
- คณะ
+ตดเกรดได()
+ ลงทะเบยนเรยนได ()
กลไกทมประโยชนของ Inheritance ทาใหเกดReusable
![Page 72: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/72.jpg)
แบบฝกหด
Problem Domain 1“โรงพยาบาลแหงหนงมบคลากรอย 4 ประเภทดงน
1. แพทย 2. พยาบาล 3. คนไข 4. เจาหนา”นอกจากน ยงมบรษพยาบาล อกดวย
Problem Domain 2“หากเราจะจาแนกประเภทของพนกงานในบรษทสามารถแบงออกเปนพนกงานเตมเวลา และพนกงานพารทไทม”
จงสรางแผนภาพเพอแสดง Generalization / Specialization จาก Problem Domain ทกาหนดใหตอไปน
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 73: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/73.jpg)
Generalization
• แนวคดตามหลกการเชงวตถ– Generalization จดการ classes ใหอยในรปของ
โครงสรางลาดบช น (class hierarchy) ขนกบsimilarities และ differences
– เราเรยกคลาสทอยในระดบทสงกวาของ classes hierarchy วา “superclasses” และทอยในระดบตากวาวา “subclasses”
– ความสมพนธเปนแบบ “kind-of” relationship
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 74: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/74.jpg)
Inheritance and Polymorphism
• “subclass” รบถายทอดคณสมบต (inherits) อนไดแกattributes, operations และassociations มาจาก“superclass” ของตวเอง
• แตอยางไรกตาม ถา attribute หรอ operation ของ“superclass” ถกกาหนดใหคาใหมใน “subclass” จะเปนการ “overrides” คานยามทกาหนดไวใน“superclass”
• ซงจะนาไปสแนวคดของ polymorphism
![Page 75: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/75.jpg)
สตว
- ชอ
+ กน()
การทา Override ทาใหเกด Polymorphism
แมว นก
+ กน() + กน()
คน
+ กน()
![Page 76: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/76.jpg)
Superclasses and Subclasses• “Superclass” มคานยาม attributes, operations และ
associations รวมกนกบ “subclasses” ของคลาสน นๆ
• “Subclasses” ม attributes, operations และ associations เฉพาะเปนของตวเอง โดยเลอกทจะกาหนดนยามใหมใหกบ attribute, operation หรอ relationship ทรบมาจาก “superclass” หรอไมกได
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 77: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/77.jpg)
Inheritance – กลไกทเกดจาก Specialization Abstraction
Subclass Superclass และ Inheritance
จากหวขอทผานมา การทา Specialize เกดจาก Class เดม หรอเรยกอกอยางหนงวา Class เร มตน หรอ Superclass หรอ Seed Class(Seed หมายถง เมลดพนธ) และ Class ทเกดจากการทา Specialize น นเรยกวา Subclass ในทาง Object Orientation เราเรยกกระบวนการ Specialization วา Inheritance (มาจาก Inherit หมายถง การถายทอด เชน การถายทอดทางพนธกรรม เปนตน)
*** ขอควรจา ในการทา Inheritance คอ Subclass ท Inherit มาจาก SuperClass น น จะตองมคณสมบตทกอยางของ Superclass (จะขาดคณสมบตใดๆ ของ Superclass ไมได) ผนวกกบคณสมบตพเศษทเพมเขาไปในแตละ Subclass เสมอ
![Page 78: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/78.jpg)
ในทาง Object Orientation เราใชสญลกษณลกศรซงหวลกศรเปนรปสามเหลยมใสชจาก Subclass ไปยง Superclass เพอแสดงการทา Inheritance ดงรป
บญชเงนฝากธนาคาร
-ธนาคาร-ชอบญช-อตราดอกเบย#ยอดคงคาง
+ฝาก+ถอน
บญชออมทรพย
+ชาระคาสาธารณปโภค
บญชกระแสรายวน
-คาธรรมเนยม
+ชาระเชครายวน
![Page 79: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/79.jpg)
กฎเกณฑของการทา Inheritance
การทา Inheritance นนเปนการถายทอดคณสมบตทกอยางจาก Superclass ไมวาจะเปน Attribute หรอ Function แตมขอควรจาวา Visibility ของ Attributes หรอ Functions นนมความสมพนธกบการทา Inheritance เสมอนนคอ
1. Private Attributes/Functions จะถายทอดมาเปน Private Attributes/Functions ของ Subclass แตสวนท Inherit มาจาก Private Attributes/Functions มายง Subclass จะไมสามารถเขาถงไดโดย Function ทมอยใน Subclass แตไมไดมาจากการ Inherit
2. Protected Attributes/Functions ของ Superclass จะถายทอดมาเปน Protected Attributes/Functions ของ Subclass อนง การเขาถง Attributes และ Functions ของ Subclass ทเกดจากการ Inherit ในกรณนจะทาได โดยผาน Function ใดๆ ของ Subclass นน โดยไมคานงวาจะเปน Function ทไดมาจากการ Inherit หรอไม
![Page 80: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/80.jpg)
3. Public Attributes/ Functions จะถายทอดมาเปน Public Attributes/ Functions ของ Subclass เสมอ
บญชเงนฝากธนาคาร
-ธนาคาร-ชอบญช-อตราดอกเบย#ยอดคงคาง
+ฝาก+ถอน
Superclass Subclass
บญชออมทรพย
-ธนาคาร-ชอบญช-อตราดอกเบย#ยอดคงคาง
+ฝาก+ถอน+ชาระคาสาธารณปโภค
บญชกระแสรายวน
-ธนาคาร-ชอบญช-อตราดอกเบย#ยอดคงคาง-คาธรรมเนยม
+ฝาก+ถอน+ชาระคาสาธารณปโภค
![Page 81: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/81.jpg)
![Page 82: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/82.jpg)
![Page 83: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/83.jpg)
A Generalization Hierarchy
Geometric_FigureX_PositionY_Position
EllipseMajor_AxisMinor_Axis
CircleRadius
RectangleWidthHeight
Superclass
Subclasses
![Page 84: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/84.jpg)
Class Diagrams-inheritance
![Page 85: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/85.jpg)
Class diagrams-inheritanceA simple example of inheritance in Java:
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 86: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/86.jpg)
Class diagrams-inheritance
![Page 87: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/87.jpg)
Class diagrams-inheritanceClock
- currentTime : Time
+setTime(Time t)
+getTime() : Time
AlarmClock- alarmOn : Boolean
- alarmTime : Time
+ setAlarm(boolean on_off)
กลไกทมประโยชนของ Inheritance ทาใหเกดReusable
+ setAlarmTime(Time t)
![Page 88: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/88.jpg)
Class diagrams-inheritance
![Page 90: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/90.jpg)
Inheritance• Class Diagram สามารถแสดงการสบทอดคลาสได
เพอลดความซาซอนในการอธบายขอมล ดงน
Figure 4: Inheritance is indicated by a solid line with a closed, unfilled arrowhead pointing at the super class
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 91: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/91.jpg)
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 92: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/92.jpg)
คน- รหสประจาตวประชาชน
-ชอ-สกล
-ทอย
+บอกชอ-สกลได()
นกศกษา- รหสประจาตวประชาชน
-ชอ-สกล
-ทอย
+บอกชอ-สกลได()
อาจารย- รหสประจาตวประชาชน
-ชอ-สกล
-ทอย
+บอกชอ-สกลได()
![Page 93: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/93.jpg)
คน- รหสประจาตวประชาชน
-ชอ-สกล
-ทอย
+บอกชอ-สกลได()
นกศกษา- รหสประจาตวนกศกษา
- ผลการเรยน
อาจารย- รหสอาจารย
-สาขาวชา
-คณะ
+ตดเกรดได()+ ลงทะเบยนเรยนได ()
กลไกทมประโยชนจากการทา Inheritance
![Page 94: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/94.jpg)
Single & Multiple Inheritance
• generalizations มกเกดใน class hierarchies ทแตละ “subclass” มเพยง 1 “superclass” เรยกวา “single inheritance”
• แตมบางสถานการณท “subclass” อาจมไดมากกวา 1 “superclass” เรยกวา “multiple inheritance”
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 95: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/95.jpg)
Multiple InheritanceEmployee
GeneralStaff ProfStaff FullTime PartTime
AcademicSubclass withtwo superclasses
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 96: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/96.jpg)
Multiple Inheritance
Vehicle Furniture
Wheelchair
![Page 97: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/97.jpg)
Multiple Inheritance การทา Inheritance ยงมกรณทเราทา Inherit จาก Superclass ทมากกวา 1 ตว เพอใหได Subclass ทมคณสมบตพเศษเพยงตวเดยว หรอมากกวา
เครองเลน CD เพลง
-ยหอ-จานวนชองเกบ CD
+เลนเพลง()
เครองเลน Video CD
-ยหอ
+เลน Video()
เครองเลน CD
-ยหอ-จานวนชองเกบ CD
+เลนเพลง()+เลน Video()
![Page 98: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/98.jpg)
จากรปจะเหนวา เครองเลน CD ไดดงเอา Attributes จานวนชองเกบ CD และ Functions เลนเพลง จากเครองเลน CD เพลงมาเปน Attributes และ Functions ของตนเอง ในขณะเดยวกนไดดงเอา Functions เลน Video ของเครองเลน Video CD มาเปน Functions หนงของตนเอง ซงทกอยางลวนเปนไปตามกฎของ Inheritance ทงสน แตสงทสนใจกคอ ทงเครองเลน CD เพลง และเครองเลน Video CD ตางกม Attributes ยหอเหมอนกน แลวเครองเลน CD กไมสามารถม Attributes 2 ตวทมช อเหมอนกนได ดงนนทางเลอกกคอ มนตองเลอกทจะเอา Attributes ยหอจาก Class ใด Class หนงเทานน เพอการแกปญหาในการเลอก ในกรณน Subclass ทเกดจาก Multiple Inheritance นน จะเลอกเอา Attributes หรอ Functions ทชอซากนจาก Superclass ทไดทา Inherit กอนเสมอ ซงพจารณาจากรป Subclass ทอยทางซาย จะทา Inherit กอน Superclass ทอยทางขวาเสมอ
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 99: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/99.jpg)
• Polymorphism
การท Subclass ทเกดจากการ Inherit จาก Superclassแตมการดดแปลง Functions บางอยางไมไดยดตาม Superclassทงหมด จะเรยก Class นนมคณสมบต Polymorphism
Polymorphism เปนตวการทจะทาให Subclass ทมFunctions เดยวกนกบ Superclass (หรออกนยหนงคอ Subclass ทม Functions เปนชอเดยวกนกบ Functions ในSuperclass) มการทางานทแตกตางกน
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 100: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/100.jpg)
รถยนต
- ยหอ- รน
+ วงเดนหนา+ วงถอยหลง+ เลยว
รถตนตะขาบ
รถตนตะขาบ
- ยหอ- รน
+ วงเดนหนา+ วงถอยหลง+ เลยว
เลยวโดยวธการใชพวงมาลย
รป ภาพจาลองแสดง Polymorphism
เกด Polymorphism
เลยวโดยวธการหยดลอ
![Page 101: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/101.jpg)
เครองบน
- มปกเฮลคอปเตอร
- มใบพด+ บน() + บน()
อากาศยาน
+ บน()
บนไดดวยปก บนไดดวยใบพด
เกด Polymorphism
![Page 102: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/102.jpg)
คน
- มขามา
- มขา+ วงได() + วงได()
สงมชวต
+ วงได()
วงไดดวย สอง ขา วงไดดวยสขา
เกด Polymorphism
![Page 103: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/103.jpg)
คน
- มขามา
- มขา+ วงได()
+ วงได()
สงมชวต
+ วงได()
วงไดดวย สอง ขา วงไดดวยสขา
เกด Polymorphism
คนพการ
- ขาเทยม
+ วงได()วงไดดวย ขาเทยม
![Page 104: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/104.jpg)
class human {private String name;
public void walk() {System.out.println(“Walk with 2 leg”);
}
}
class ab_human {private String name;
public override void walk() {System.out.println(“Walk with artificial 2 leg ”);
}
}
![Page 105: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/105.jpg)
Specialization• Specialization เปนกระบวนการยอนกลบของ
generalization แตใหผลเชนเดม แตกตางกนทจดเร มตนเทาน น
• Generalization เปนการคนหาคณลกษณะรวมกน ของ(sub)classes
• Specialization เปนการแยก และคนหาคณลกษณะพเศษของ (super)classes เพอใหได subclasses
![Page 106: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/106.jpg)
Generalization and Classification (= is_a?)
1. Shep is a Border Collie.2. A Border Collie is a Dog.3. Dogs are Animals4. A Border Collie is a Breed.5. Dog is a Species
1+2: Shep is a Dog1+2+3: Shep is a animal1+4: Shep is a breed?????2+5: A Border Collie is a Species?????Generalization is transitive (is kind of)Classification is not transitive (is instance of)หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 107: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/107.jpg)
Polymorphism in VB.NETPublic Class Shape
Public Overridable Sub draw()MsgBox("Draw Shape")
End Sub
End ClassPublic Class Rectangle
Inherits ShapePublic Overrides Sub draw()
MsgBox("Draw Rec ")
End SubEnd ClassPublic Class Circle
Inherits RectanglePublic Overrides Sub draw()
MsgBox("Draw Circle ")
End SubEnd Class
-Prefix Overridable before Base Method-Prefix Overrides before derived class
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 108: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/108.jpg)
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 Shapes.draw()Dim s1 As Rectangle = New Rectangles1.draw()
Dim s3 As New Circles3.draw()
End Sub
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 109: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/109.jpg)
Polymorphism in VB.NETPrivate Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.LoadDim s As Shape = New Shapes.draw()Dim s1 As Rectangle = New Rectangles1.draw()
Dim s3 As New Circles1 = s3
s1.draw()
End Sub
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 110: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/110.jpg)
No polymorphismPublic Class Shape
Public Overridable Sub draw()MsgBox("Draw Shape")
End Sub
End ClassPublic Class Rectangle
Inherits ShapePublic Overrides Sub draw()
MsgBox("Draw Rec ")
End SubEnd ClassPublic Class Circle
Inherits RectanglePublic Overrides Sub draw()
MsgBox("Draw Circle ")
End SubEnd ClassPublic Class Triangle
Inherits ShapePublic Shadows Sub draw()
MsgBox("Draw Circle ")
End SubEnd Class
Dim s As Shape = New Shapes.draw()Dim s1 As Rectangle = New Rectangles1.draw()
Dim s3 As New Circles1 = s3
s1.draw()
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 111: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/111.jpg)
Calling Base MethodPublic Class Shape
Public Overridable Sub draw()MsgBox("Draw Shape")
End Sub
End ClassPublic Class Rectangle
Inherits ShapePublic Overrides Sub draw()
MsgBox("Draw Rec ")
End SubEnd ClassPublic Class Circle
Inherits RectanglePublic Overrides Sub draw()
MsgBox("Draw Circle ")MyBase.draw()
End SubEnd Class
Mybase
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 112: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/112.jpg)
การสบทอดINHERITANCE
(in JAVA)
in java
![Page 113: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/113.jpg)
เราจะทราบถงสงทอางองเมอไดทาการสรางวตถแลว แตถาการเขยนสงทอยภายในคลาส ยงไมไดถกสรางเปนวตถ เราจะอางไดอยางไร คาวา “this” เปนวธทชวยใหการอางองตวมนเองโดยยงไมตองสรางวตถกสามารถทาได
• Using this with a Field• Using this with a Constructor
This References
in java
![Page 114: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/114.jpg)
public class Point { public int x = 0; public int y = 0; //constructor
public Point(int a, int b){ x = a; y = b;
}}
Using this with a Field
public class Point { public int x = 0; public int y = 0; //constructor
public Point(int x, int y){ this.x = x; this.y = y;
}}
in java
![Page 115: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/115.jpg)
public class Rectangle { private int x, y; private int width, height; public Rectangle() {
this(0, 0, 0, 0);} public Rectangle(int width, int height) { this(0, 0, width, height);
} public Rectangle(int x, int y, int width, int height) { this.x = x; this.y = y; this.width = width; this.height = height; } ... }
Using this with a Constructor
in java
![Page 116: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/116.jpg)
• Inheritance เปนรปแบบของการนากลบมาใชใหมของซอฟตแวร ซงคลาสใหมจะถกสรางจากการรบสงตางๆจากคลาสทมอย ทงสวน Attribute และสวนของ Method และคลาสใหมยงสามารถเพมเตมความสามารถบางประการตามตองการ
• ดงนนคลาสทถกสรางใหมจะไดรบคณสมบตของคลาสเดมและเพมคณสมบตบางประการ
INHERITANCE
in java
![Page 117: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/117.jpg)
INHERITANCE
in java
![Page 118: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/118.jpg)
สมมตวาม Class A และเราตองการสราง class B ทไดรบคณลกษณะตางๆ จาก Class A สงทเราตองการตอนสราง class B คอการเพม keyword “extends” เขาไปดงแสดงในรป
รปแบบ
Class B extends A {
//definition of class B}
in java
![Page 119: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/119.jpg)
• Class A : parent class/base class/super class• Class B : child class/extended class/sub class
Super class & Sub Class
class A {void printA() {System.out.println(‘A’);}
}class B extends A {
void printB() {System.out.println(‘B’);}}
in javaหากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 120: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/120.jpg)
ซบคลาส (Sub Classes) สบทอดสมาชกทกอยาง(แอตทบวสและเมดธอรด) จากซเปอร Super Class ยกเวน– The private member of Super Class– Constructor of Super Class
การสบทอดจาก Super Class
class InheritTest1 {public static void main(String args[]) {
A x = new A(); x.printA();B y = new B(); y.printA(); y.printB();
}}
in javaหากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 121: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/121.jpg)
ใส final ไวหนา Class ถาไมตองการให Class นนสบทอดได
KEYWORD “final”
class A { int a = 1;}class B extends A { int b = 2; }final class C extends B { int c = 3; }class Inherit2 {
public static void main(String args[]){C z = new C();System.out.println(z.a+z.b+z.c);
}}
in java
![Page 122: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/122.jpg)
REFERENCEclass A {int x;}class B extends A {int y;}
a
A a = new A();B b = new B();
XX
Y
b
in java
![Page 123: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/123.jpg)
ทดสอบโปรแกรมclass A { int x = 1;}class B extends A { int y = 2; }class Inherit3 {
public static void main(String args[]) {A a = new A();System.out.println(a.x);B b = new B();System.out.println(b.x + “,” + b.y);b.x--;// b = a;a = b;System.out.println(a.x);
}}
in java
![Page 124: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/124.jpg)
• เมอมการสราง instance ของคลาสลกขน constructors ของคลาสบรรพบรษทงหมด จะถกทางาน
Constructor Chaining
class A { A() {System.out.println(“A”);} }class B extends A {
B() {System.out.println(“B”);}}class ConstructorChain {
public static void main(String args[]){ new B();}
}
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 125: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/125.jpg)
Y
XX
• ใช keyword วา “super” แทน class ท inherite เพอใชในการอางถง member ของ super class
• ในการอาง super จะหมายถงตว data member ตวแรกทเจอในสายของบรรพบรษ เชน
Super Reference
X X
Y
X
Z
Y
A B extends A C extends B
this.x
super.xthis.xsuper.x
this.Y
super.Yin java
![Page 126: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/126.jpg)
Super Referenceclass A {
int a;void print() { System.out.println(a);}
}class B extends A {
int a;B(int x, int y){super.a = x; this.a = y;}void print() {
super.print(); System.out.println(a);}}class Super1{
public static void main(String args[]){B b = new B(1,2);b.print();
}}
in java
![Page 127: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/127.jpg)
Super Constructors
class A {A() { System.out.println("A");}A(char c) { System.out.println(c); }
}class B extends A {
B() {//super('a');System.out.println("B");
}}class SuperConstructor {
public static void main(String args[]){new B();}}
in java
![Page 128: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/128.jpg)
ถาเรากาหนด data member ในคลาสลกมชอเหมอนกบ
data member ในคลาสแม ชอของลกจะบง(shadow)ชอในคลาสแม
Shadowing
class A {int x = 1;}class B extends A {float x = 2.0f;}class Shadowing {
public static void main(String args[]) {B b = new B();System.out.println(b.x);
}}
X
A B extends A
X X
in java
![Page 129: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/129.jpg)
ถาเรากาหนด method ในคลาสลกม signature เหมอนกบ method ในคลาสแม พฤตกรรมของลกจะลบลาง(override)พฤตกรรมในคลาสแม
Overriding
class A {void print() {System.out.println("A");}}class B extends A {
void print() {System.out.println("B");}}class Overriding {
public static void main(String args[]) {new B().print();
}}
A B extends A
printprint
in java
![Page 130: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/130.jpg)
ทดสอบการสบทอดคณสมบตของคลาสPeople
# name : String# age : int
+ People() : void+ People(String,int) : void+ setName(String) : void+ getName(): String+ setAge(int) : void+ getAge(): int+ doWork(): void+ toString(): String
สญลกษณของ UML(Unified Modeling Language)- private+ public# protected
Student
- gpa : double
+ Student() : void+ Student(String,int,double) : void+ setGPA(double) : void+ getGPA(): double+ doWork(): void+ toString(): String
Teacher
- department : String
+ Teacher() : void+ Teacher(String,int,String) : void+ setDepartment(String) : void+ getDepartment(): String+ doWork(): void+ toString(): String
ประชาชน
นกเรยน อาจารย
in java
![Page 131: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/131.jpg)
public class People {protected String name;protected int age;
public People(){this(null,0);
}public People(String n,int a){
name = n;age = a;
}public void setName(String n){
name = n;}public String getName(){
return name;}
Class People
public void setAge(int a){age =a;
}public int getAge(){
return age;}public void doWork(){}public String toString(){
return "Name : " + name + " Age : " +age;}}
ตอ
in java
![Page 132: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/132.jpg)
public class Student extends People {private double gpa;public Student(){
this(null,0,0);}public Student(String n,int a,double g){
super(n,a);gpa = g;
}public void setGPA(double g){ gpa = g; }public double getGGA(){ return gpa;}public void doWork(){
System.out.println("Study in school");}public String toString(){
return super.toString()+ " GPA : "+ gpa;}
}
class Student
in java
![Page 133: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/133.jpg)
public class Teacher extends People{private String department;public Teacher(){
this(null,0,null);}public Teacher(String n,int a,String dep){super(n,a);department = dep;}public void setDepartment(String dep){department = dep;}public String getDepartment(){return department; }public void doWork(){
System.out.println("Teach in school");}public String toString(){
return super.toString()+ " Department : "+ department;}}
class Teacher
in java
![Page 134: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/134.jpg)
public class Demo {
public static void main(String [] args){Student s1 = new Student("Winai",15,3.5);Teacher t1 = new Teacher("Pranee",30,"Science");System.out.println(s1);System.out.println(t1);s1.doWork();t1.doWork();
}}
class Demo ทดสอบการทางาน
in java
![Page 135: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/135.jpg)
Polymorphism
With java
in java
![Page 136: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/136.jpg)
เปนลกษณะการทางานของ method ชนดหนงทตองอาศยกลไกการทางานของ Inheritance และ Dynamic Binding
method จะสามารถตอบสนองการทางานไดหลายรปแบบขนอยกบ Object ทสงเขามาวาเปนของ class ใด กจะทาตามคาสงทไดเขยนไวใน method ของclass นน
Polymorphism
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 137: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/137.jpg)
อ.รชดาพร คณาวงษ 137
ตวอยางซเปอรคลาสและซบคลาส
• สมมตวาเรามคลาสเรมตนเปน คลาสชอ Shape บอกลกษณะของรปเรขาคณตของวตถ 2 มต
• มคลาส Square บอกลกษณะของสเหลยม และคลาส Triangle บอกลกษณะของสามเหลยม ทสบทอดลกษณะมาจากคลาส Shape
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 138: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/138.jpg)
อ.รชดาพร คณาวงษ 138
inheritance & overridingclass Figure {
double width, height;String name;Figure(double w, double h, String n) {
width = w; height = h; name = n;}public String getName() { return name;}public double getArea() { return 0.0;}public void setWidth(double w) { width = w; }public void setHeight(double h) { height = h;}
}
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 139: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/139.jpg)
อ.รชดาพร คณาวงษ 139
inheritance & overridingclass Rectangle extends Figure {
Rectangle(double w, double h) {super(w,h,”rectangle”);
}double getArea() { return width*height;}
}
class Triangle extends Figure {Triangle(double w, double h) {
super(w,h,”triangle”);}double getArea() { return 0.5*widht*height;}
}
![Page 140: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/140.jpg)
อ.รชดาพร คณาวงษ 140
Polymorphismclass PolyEx {
static void compute(Figure x) {System.out.println(x.getName()+” is”);System.out.println(x.getArea());
}public static void main(String args[]){
compute(new Figure(1, 1, “undefined”);compute(new Triangle(1, 1));compute(new Rectangle(1, 1));
}}
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 141: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/141.jpg)
อ.รชดาพร คณาวงษ 141
Polymorphismclass A {void print() { System.out.println(“Im A”); }
}class B1 extends A {void print() { System.out.println(“Im B1”);}
}class B2 extends A {void print() { System.out.println(“Im B2”);}
}class Other {void call(A a) { a.print(); }public static void main(String args[]){call(new A()); call(new B1()); call(new B2());
}}
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 142: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/142.jpg)
![Page 143: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/143.jpg)
คาถามทายบท
1. จงเขยนแผนภาพแสดง Generalization จาก Problem Domain ตอไปน
“Problem Domain 1 เมอเราพดถงฐานะของบคคล เราจะจาแนกฐานะออกเปน 2 สวนคอ ทรพยสน และหนสน โดยทรพยสนจาแนกออกเปน เงนสดและเงนฝากในบญช และเงนในรปแบบอนๆ ซงไดแก หน และหลกทรพย หนส น จาแนกออกเปน หนสนระยะสน และหนสนระยะยาว”
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 144: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/144.jpg)
“Problem Domain 2 งานศลปะแบงออกเปน 3 ประเภทคอ งานจตรกรรม งานประตมากรรม และงานสถาปตยกรรม โดยงานจตรกรรมนน จาแนกเปน ภาพวาด (งานลายเสน งานสนา งานสนามน งานสชอลค และงานสฝ น) และภาพพมพ งานประตมากรรม แบงออกเปน งานปน และงานหลอ สวนงานสถาปตยกรรมนน แบงออกเปน สถาปตยกรรมไทย และสถาปตยกรรมประยกต”
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 145: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/145.jpg)
2. ดวยหลกการ Generalization Abstract ของลกจาง กบหวหนางาน จะเปลยนเปนเชนไร เมอม Class ตอไปนเพ มเขาไป
Class : ลกจางช วคราวAttributes : เงนเดอนFunctions : ปฏบตงาน
ลาพกงาน
Class : บรการระดบสงAttributes : เงนเดอน
ตาแหนง เงนประจา
ตาแหนงFunctions : ปฏบตงาน
ลาพกงาน ส งงาน วางนโยบาย
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 146: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/146.jpg)
3. จากแผนภาพตอไปน จงตอบคาถามตอไปน
Class A
- Attr1+ Attr2
+ Func1+ Func2+ Func3
Class B
- Attr3# Attr4
+ Func4+ Func5+ Func6
Class C
- Attr5- Attr6
+ Func7+ Func8+ Func9
Class D- Attr7- Func10
Class E- Attr8+ Func11
Class F- Attr9
- Private+ Public# protected
Class E- Attr8
+ Func11
- Func10
Class E
-Attr8
-+ Atr2
-#Attr4
+ Func11
+ Func9- 10
![Page 147: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/147.jpg)
3. จากแผนภาพตอไปน จงตอบคาถามตอไปน
Class A
+ Attr1+ Attr2
+ Func1+ Func2+ Func3
Class B
- Attr3- Attr4
- Func4- Func5- Func6
Class C
# Attr5# Attr6
+ Func7- Func8# Func9
Class D# Attr7- Func8
Class E- Attr8+ Func10
Class F- Attr9
![Page 148: Lec03 3 Generalization Abstraction Tsiam2dev.net/E_Learning/OOAD/Lec03_3_Generalization_Abstraction… · Lec03_3_Generalization Abstraction • เพื่อให้ผู้อ่านเข้าใจหลักการของ](https://reader033.fdocuments.net/reader033/viewer/2022042316/5f045ebc7e708231d40da44b/html5/thumbnails/148.jpg)
คาถาม
1. Inside View ของ Class D, Class E, และ Class F เปนอยางไร2. ใน Class D ม Attr1 หรอไม ถาม Attr1 ไดมาจากการ Inherit จาก Class ใด3. ใน Class D ม Attr2 หรอไม ถาม Attr2 ไดมาจากการ Inherit จาก Class ใด4. ใน Class D ม Attr3 หรอไม ถาม Attr3 ไดมาจากการ Inherit จาก Class ใด5. ใน Class D ม Func1 หรอไม ถาม Func1 ไดมาจากการ Inherit จาก Class ใด6. ใน Class D ม Func4 หรอไม ถาม Func4 ไดมาจากการ Inherit จาก Class ใด7. ใน Class D ม Attributes ตวใดบางท Func8 สามารถเขาถงได 8. ใน Class E ม Attributes ตวใดบางท Func9 สามารถเขาถงได 9. ใน Class F ม Func8 หรอไม ถาม ม Attributes ตวใดบางท Func8 สามารถเขาถงได 10. ใน Class F ม Func4 หรอไม ถาม ม Attributes ตวใดบางท Func4 สามารถเขาถงได
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]