last update : 16/08/2562siam2dev.net/.../lec03_3_generalization...2562_pdf.pdf · specialization...
TRANSCRIPT
![Page 1: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/1.jpg)
http://www.siam2dev.com [ dr. nattapong songneam]
โดย อ.ดร. นฐพงศ สงเนยมhttp://[email protected]
สาขาวชา สาขาวชาเทคโนโลยสารสนเทศและวทยาการคอมพวเตอร
คณะวทยาศาสตรและเทคโนโลย มหาวทยาลยราชภฏพระนคร
Last Update : 16/08/2562
Lec03_3_Generalization Abstraction
InformationTechnology
Tหากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 2: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/2.jpg)
สอบระหวางภาค 1/2562
• บททใชสอบ
– บทท 1, 2, 3.1, 3.2, 3.3, 3.4, 4 , 5
• สอบ วนท.... .. ส.ค. 2562
• หองสอบ ...
http://www.siam2dev.com [ dr. nattapong songneam]
![Page 3: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/3.jpg)
Abstractions
• Classification abs.
• Aggregation abs.
• Generalization/Specialization abs.
• Association abs.
![Page 4: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/4.jpg)
OOP
• Reusable ความสามารถในการน ากลบมาใชใหม
• Polymorphism การพองรป หรอ หนงรปหลายพฤตกรรม
– Override
– Overloading
กน() กน()
*** กลไกเหลานเกดจากการท า Generalization
คน แมว
![Page 5: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/5.jpg)
เลยว() เลยว()
รถยนต รถตนตะขาบ
Polymorph
วธเลยวรถยนตใชพวงมาลยวธเลยวรถตนตะขาบเลยวโดย
หยดลอขางใดขางหนง
![Page 6: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/6.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]://www.siam2dev.com [ dr.
nattapong songneam]
![Page 7: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/7.jpg)
Lec03_3_Generalization Abstraction
• เพอใหผอานเขาใจหลกการของ Generalization Abstraction และการ Inheritance
• เพอใหผอานเขาใจวตถประสงค กลไก และวธการท า inheritance
• เพอใหผอานสามารถแยกความแตกตางและสรางความสมพนธระหวาง Super class และ Sub class ได
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 8: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/8.jpg)
Generalization Abstraction
• Generalization Abstraction คอกระบวนการในการน า Class ทมลกษณะเหมอนหรอคลายกนหรอมคณสมบตอยางใดอยางหนงรวมกน (General) มาจดหมวดหมไวเปน Class เดยวกน ซงกระบวนการยอนกลบของ Generalization Abstraction เรยกวา Specialization คอการตอบค าถามวาใน Class หนง ๆ นนสามารถจ าแนกเปน Class อะไรไดบาง
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 9: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/9.jpg)
รถยนต รถยนต
Aggregate Generalization
เครองยนต ลอ
ตวถง
รถบรรทก รถกระบะ
![Page 10: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/10.jpg)
Generalization คอ น ำคลำสตำงๆ ทมบำงคลำยกนมำจดรวมเปนคลำสเดยวกน
Aggregation คอ น ำคลำส มำรวมกน ไมจ ำเปนทตองมอะไรทเหมอนกน
computer*** กำรรวมแบบ aggregate คอ ขำงลำงเปนสวนหนง หรอ เปนสวนประกอบ ของคลำสดำนบน
Case Monitor Keyboard Mouse
มควำมหมำยวำ เมำส จอ เคส คบอรด เปนชนสวนหนงของคอมพวเตอร
![Page 11: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/11.jpg)
Generalization คอ น ำคลำสตำงๆ ทมบำงคลำยกนมำจดรวมเปนคลำสเดยวกน
Aggregation คอ น ำคลำส มำรวมกน ไมจ ำเปนทตองมอะไรทเหมอนกน
Computer
*** การแบงประเภทของคอมพวเตอร วา ม 4 ประเภท 1. super 2. mainframe 3. mini 4. micro
Super Computer
MainframeComputer
Mini Computer
Micro Computer
![Page 12: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/12.jpg)
ปากกา ดนสอ
*** ค ำวำเหมอนกนใหด ทง attribute และฟงกชน
เครองเขยน*** ปำกกำ กบ ดนสอ มอะไรทเหมอนกนบำงถำพอจะมอะไรทเหมอนกน กจดใหอยกลมเดยวกนไดโดยไมสนใจ สงทแตกตำงกน
*** ปำกกำ กบ ดนสอ ม ควำมสำมำรถในกำรเขยน และ มส มรำคำ มควำมยำว มขนำดจงจดใหอยในกลมเดยวกนได เรยก กลมใหมน วำ คลำสเครองเขยน
ปากกา
ปากกาสเขยว
ปากกาสน าเงน
ปากกาสแดง
*** คลำสสฟเคชน แอบแทรคชน classification
abstraction
Is kind of
Is aเปนชนดของ/เปน
Is member ofเปนสมำชกของ
![Page 13: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/13.jpg)
ประเภทของ relationship
• Is member of เปนสมาชกของ
• Is part of เปนสวนหนงของ
• Is kind of ประเภทหนงของ
![Page 14: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/14.jpg)
Classification Abs.
• เอาวตถ ทมลกษณะเหมอนกน / คลายกน จดใหอยในกลมเดยวกน ซงกลมคอ คลาส
ปากกา สแดง ปากกา สน าเงน ปากกา ดามทหนง
TYPE
กลมปากกา
![Page 15: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/15.jpg)
Generalization
• เอาคลาส ทมลกษณะเหมอนกน / คลายกน จดใหอยในกลมเดยวกน ซงกลมคอ คลาส
• ตดสวนทแตกตางออก
• พจารณาเฉพาะสวนทเหมอนกน
แมว สนข วว
สตวเลยง
Is kind of
เปนชนดของclass
class
Is member of
Is part ofIs kind of
![Page 16: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/16.jpg)
แมว วว
สตวเลยง
Is kind of
เปนชนดของclass
class
Tom คณทองแดง ววสแดง
Is member ofIs member ofIs member of
สนข
![Page 17: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/17.jpg)
แมว วว
สตวเลยง
Is kind of
เปนชนดของclass
class
Tom คณทองแดง ววสแดง
Is member ofIs member ofIs member of
สนข
![Page 18: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/18.jpg)
General & Special
![Page 19: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/19.jpg)
รถบรรทกคณสมบต : คณสมบตของรถยนต
+ สามารถบรรทกของได
รถยนตคณสมบต : คณสมบตของรถยนต
+ ใชโดยสาร ม 4 ประต
รถสปอรตคณสมบต : คณสมบตของรถเกง+วงไดเรวกวา + เปดประทนได
ยานพาหนะคณสมบต : มลอมเครองยนต
Intensive: ถาเราบอกวารถบรรทก และรถเกง ตางกมลอ และมเครองยนตนนแปลวาสองสงนมลกษณะรวมกนเปนการมองในลกษณะของ Generalization Abstraction
ถาเราเจอสงหนงทมลอ มเครองยนต เราเรยกวา
เปนยานพาหนะ
มลอมเครองยนตเคลอนทได()
Generalization รวมคลาสSpecialization แยกคลาส
เคลอนทได()
![Page 20: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/20.jpg)
Generalization/Specialization
• การเตม/เพม คณสมบตหรอฟงกชนคอ การท า >> special
• ลดทอน คณสมบตหรอฟงกชน คอ การท า >> general
![Page 21: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/21.jpg)
Class A
Class A + attribute or function added
![Page 22: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/22.jpg)
เตมตนตะขาบเขาไปกลายเปนอกสงหนงเรยก รถตนตะขาบ
เตมตนตะขาบเขาไปกลายเปนอกสงหนงเรยก รถตนตะขาบ+ เตมทตกดน / ขดดนเขาไป
เตมตนตะขาบเขาไปกลายเปนอกสงหนงเรยก รถตนตะขาบ+ เตมปนใหญ เขาไป กลาย เปน รถถง
![Page 23: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/23.jpg)
จงอธบายความหมายของภาพทก าหนดใหในเชงของ Generalization Abstraction
อาจารยคณสมบต : คณสมบตของบคลากร
+ สอน
จนท.คณสมบต : คณสมบตของบคลากร
+ ปฏบตงาน
บคลากรของมหาวทยาลยคณสมบต : มชอ + มสวสดการ+ ท างานภายในมหาวทยาลย
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 24: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/24.jpg)
จงอธบายความหมายของภาพทก าหนดใหในเชงของ Generalization Abstraction
อาจารยคณสมบต : คณสมบตของบคลากร
+ สอน + งานวจย
จนท.คณสมบต : คณสมบตของบคลากร
+ ปฏบตงาน
บคลากรของมหาวทยาลยคณสมบต : มชอ + มสวสดการ+ ท างานภายในมหาวทยาลย
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
ผบรหารคณสมบต : คณสมบตของบคลากร
+ บรหารงาน
![Page 25: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/25.jpg)
จงอธบายความหมายของภาพทก าหนดใหในเชงของ Generalization Abstraction
หองตรวจโรคทวไปคณสมบต : ตรวจโรคทวไป
เฉพาะทาง.คณสมบต : ตรวจโรคเฉพาะทาง
หองตรวจโรคคณสมบต : มแพทย และตรวจโรคได
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 26: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/26.jpg)
จงอธบายความหมายของภาพทก าหนดใหในเชงของ Generalization Abstraction
ผปวยภายใน รพ.คณสมบต : คณสมบตของผปวย
+ นอนท รพ.
ผปวยภายนอก รพ.คณสมบต : คณสมบตของผปวย
+ กลบบานได
ผปวยคณสมบต : เปนโรค
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 27: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/27.jpg)
Generalization Abstraction
• ขอสงเกต
– ถาเราน าคลาสยอย หลายๆ คลาสแลวมคณสมบตรวมกนได แลวท าใหเกดความคดรวบยอดใหม(concept) ได และจดอยในคลาสเดยวกน เรยกวา Generalization Abstraction
– แตถามคณสมบตรวมกน แตไมเกดความคดรวบยอดใหม กไมจ าเปนจะตองรวมกนเปนคลาสเดยว
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 28: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/28.jpg)
general
ขวดน า ตนไม
![Page 29: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/29.jpg)
???
เครองบน แมว
![Page 30: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/30.jpg)
???
แนน กอนหน
![Page 31: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/31.jpg)
จากตวอยางทก าหนดใหตอไปน จงพจารณาวาคลาส อะไรสามารถรวมกนได และถารวมกนไดจะไดคลาสอะไร และคลาสใดทรวมกนไมได
1. คน , สตว , พช , → ________________
2. ผหญง , ผชาย → ________________
3. คนเสอแดง , คนเสอเหลอง → _________________
4. แมว , สนข , ไก → _________________
5. โทรศพทมอถอ , คอมพวเตอร , โทรทศน , ตเยน , หมอหงขาว → ______________________________
6. เสอ , กางเกง , ผาขาวมา , หมวก → _________________
7. โตะ , เกาอ , กระดานด า , อาจารย , นกศกษา →
____________________________________
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
อตกำนต : สงมชวตชโลธร : เพศ/คนพรภม : .............
มรกต : สงมชวต สตว สตวเลยง .............
สมชำย : ……….เครองใชไฟฟำ
ณฐวฒ : ……….เครองแตงกำย
นพณฐ : สถำนศกษำ / หองเรยน
![Page 32: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/32.jpg)
คน สตว พช
สงมชวต
![Page 33: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/33.jpg)
ผชาย ผหญง
เพศ- .....- ....
+ .....()
คน- เพศ
+ .....()
![Page 34: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/34.jpg)
เพศ
ผหญง ผชาย
*** ไมถกตอง
![Page 35: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/35.jpg)
สงมชวต
สตว คน พช
-มชวต-กน-หายใจ
![Page 36: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/36.jpg)
หองเรยน
นกเรยนโตะ อาจารย
![Page 37: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/37.jpg)
บคคล
ผชายผหญง
คน
ผชายผหญง
![Page 38: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/38.jpg)
คนไทย
กลมคนเสอเหลองกลมคนเสอแดง
คนไทย ใสเสออยในไทย
![Page 40: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/40.jpg)
• Aggregate >> ประกอบกน
• Specialization >> แบง/แยกยอย ออกเปน
โตะเตยง
เกาอ โตะ
หองเรยน
class
class
class
class
Is aNot is a
เกาอ
เฟอรนเจอร
ต
![Page 43: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/43.jpg)
COMPUTER
เครอง MAC
เครอง PC
ใช OS เปนเกณฑในการแบง
![Page 44: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/44.jpg)
Laptop
DeskTop
+ พกพาได()
+ ใชแบตเตอรร ()
- แบตเตอรร
+ ต งโตะ
- Case
COMPUTER
- ใชพลงงานไฟฟา
- Monitor
ใช portable เปนเกณฑในการแบง
+ ประมวลผลได()
![Page 45: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/45.jpg)
จากรปในสไลดกอนหนา
• จงอธบายในเชงของ Generalization Abstractions
• จงอธบายในเชงของ Specialization Abstractions
• จงอธบายในเชงของ Encapsulation
• จงอธบายในเชงของ Information Hiding
![Page 46: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/46.jpg)
Specialization abstraction
• จากรปกอนหนาน สามารถอธบายในเชงของ specialization abstraction ไดวา “เราสามารถแบงประเภทของคอมพวเตอรตามลกษณะการใชงานได 2 ประเภทคอ 1. Desktop 2. Laptop ”
Intensiveทง Desktop และ LabTop ตางกเปนเครองใชไฟฟา และ
ประมวลผลได แตตางกนตรงท LabTop สามารถพกพาไปได desktop ไมสะดวกทจะพกพา
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 47: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/47.jpg)
ขอสรป ส าหรบ specialization
1. เราพจารณาดวาคลาสหนงๆ แบงออกเปนคลาสยอยอะไรไดบาง
2. ในการแบงออกเปนคลาสสามารถท าไดหลายประเภท/วธข นอยกบวาเราจะใชเกณฑอะไร เปนตวแบง
3. ถาแบงแลวมลกษณะพเศษขนมา กควรแบง
4. การแบงกคอการเจาะจงลงไป วามลกษณะพเศษอะไรบางจงเรยกวา special
5. การแบงกคอการเอาจดทแตกตางกนของแตละคลาสมาแบง
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 48: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/48.jpg)
Laptop
DeskTop
+ พกพาได()
+ ใชแบตเตอรร ()
- แบตเตอรร
+ ต งโตะ()
- Case
COMPUTER
- ใชพลงงานไฟฟา
- Monitor
ตเยนเปนคอมพวเตอรหรอไม?
ทวเปนคอมพวเตอรหรอไม?
พดลมเปนคอมพวเตอรหรอไม?
จำกรปน
+ ประมวลผลได()
![Page 49: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/49.jpg)
Laptop
DeskTop
+ พกพาได()
+ ใชแบตเตอรร ()
- แบตเตอรร
+ ต งโตะ()
- Case
COMPUTER
- ใชพลงงานไฟฟา
- Monitor
![Page 50: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/50.jpg)
Supper Computer
MainframeMini
Computer
MicroComputer
COMPUTER
วธแบงโดยใชขนาดเปนเกณฑ
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
*** ใชเกณฑ ขนาด และความสามารถในการประมวลผล
![Page 51: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/51.jpg)
จากภาพกอนหนา สามารถอธบายในเชงของ specialization abstraction ไดวา
• อธบายไดวา คอมพวเตอรแบงออกเปน 4 ประเภทคอ SuperComputer , MainFrame , Mini , Micro โดยแบงตามขนาด และความสามารถในประมวลผล
Intensiveทง 4 ประเภท ตางกเปนคอมพวเตอร ทใชไฟฟาและประมวลผลได แตตางกนตรงท ขนาด
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 52: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/52.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 53: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/53.jpg)
ทพกอาศย = ทซ งมนษยสามารถเขาไปอยอาศยได
อพารตเมนต = ทพกอาศย + มลกษณะเปนหองเดยว
บานทาวนเฮาส = ทพกอาศย + เปนบานทเรยงตดกน
จากรป เปนการอธบาย “ทพกอาศย จ าแนกเปน อพารตเมนต และบานทาวนเฮาส” จะเหนวา เราใช Specialize เพอสรางอพารตเมนต และทาวนเฮาส
ขน ในขณะเดยวกน เราใช Generalize เพอท าใหอพารตเมนต และทาวนเฮาสม Concept รวมเดยวกน นนคอ ทงอพารตเมนตและทาวนเฮาสตางกใชเพอเปนทอยอาศยของมนษย ซงนคอ Concept ของทอยอาศย
คอนโด
![Page 54: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/54.jpg)
ทพกอาศย = ทซ งมนษยสามารถเขาไปอยอาศยได
อพารตเมนต = ทพกอาศย + มลกษณะเปนหองเดยว
บานทาวนเฮาส = ทพกอาศย + เปนบานทเรยงตดกน
จากรป เปนการอธบาย “ทพกอาศย จ าแนกเปน อพารตเมนต และบานทาวนเฮาส” จะเหนวา เราใช Specialize เพอสรางอพารตเมนต และทาวนเฮาส
ขน ในขณะเดยวกน เราใช Generalize เพอท าใหอพารตเมนต และทาวนเฮาสม Concept รวมเดยวกน นนคอ ทงอพารตเมนตและทาวนเฮาสตางกใชเพอเปนทอยอาศยของมนษย ซงนคอ Concept ของทอยอาศย
![Page 56: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/56.jpg)
สตวปกคณสมบต : มปก
มขา 2 ขา
นกคณสมบต : คณสมบตของสตวปก +
บนได
ไกคณสมบต : คณสมบตสตวปก
+ ขนได
ไกชนคณสมบต : คณสมบตไก
+ ขนได + ชนไกได
เครองบนเปนสตวปกหรอไม ?
นกเพนกวนเปนสตวปกหรอไม ?
นกกระจอกเทศเปนสตวปกหรอไม ?
จำกรปน
นกกระจอกเทศเปน นก หรอไม ?
![Page 57: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/57.jpg)
สตวปกคณสมบต : มปก
มขา 2 ขา
นกคณสมบต : คณสมบตของสตวปก +
บนได
ไกคณสมบต : คณสมบตสตวปก
+ ขนได
ไกชนคณสมบต : คณสมบตไก
+ ขนได + ชนไกได
เครองบนเปนสตวปกหรอไม ?
นกเพนกวนเปนสตวปกหรอไม ?
นกกระจอกเทศเปนสตวปกหรอไม ?ไกไขคณสมบต : คณสมบตไก + ? + ?
ไกพนธเนอคณสมบต : คณสมบตไก + ? + ?
![Page 58: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/58.jpg)
สตวน า- อาศยในน า
ป = อาศยอยในน า + มกามปลา= อาศยอยในน า
+ มครบ
??? ปลานลPractice IIจงเขยนความสมพนธของสตวบก ในเชง Generalization และ Specialization
Problem domain
??? ???
![Page 59: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/59.jpg)
ตวอยาง ของการท า Specialize เพอท าให รถยนตกลายเปนรถสปอรต และการท า Generalize เพอใหรถสปอรตกลายมาเปนรถยนต
จากรปจะพบวา การท า Specialize เพอท าให รถยนตกลายเปนรถสปอรต ท าไดโดยการเพมเตมสวนของเครองยนต Turbo และความสามารถในการเปดประทนไดเขาสรถยนตปกต และในทางกลบกนการท า Generalize เพอใหรถสปอรตกลายเปนรถยนตกท าไดโดยการเอาเครองยนต Turbo และหลงคาเปดประทนไดออกจากรถสปอรตน นเอง
Speci
aliz
e
รถยนต
รถสปอรต = รถยนต + เครองยนต Turbo + เปดประทนได
![Page 61: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/61.jpg)
ตวอยางใน C# : Add Class
![Page 62: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/62.jpg)
Has a(require component)
![Page 63: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/63.jpg)
Reserved for child class
![Page 64: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/64.jpg)
สราง คลาสลก sub class / child class / derive class
Inherit from class car
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 65: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/65.jpg)
Hierarchy classes
![Page 66: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/66.jpg)
สตว
สตวบก สตวครงบกครงน า สตวปกสตวน า
สตวเล อยคลาน สตวน าจด สตวทะเล
สตวเล ยงลกดวยนม
คน
ผหญงผชาย
![Page 67: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/67.jpg)
ตวอยางท 5.8
องคเจท ดอตเมตรกซ
Gene
raliz
atio
n
Spec
ializa
tion
Gene
raliz
atio
n
Spec
ializa
tion
อปกรณคอมพวเตอร
โปรเจคเตอร เครองพมพGe
nera
lizat
ion
Spec
ializa
tion
เลเซอรคอมพวเตอร
พกพาคอมพวเตอรต ง
โตะ
คอมพวเตอร
รานคอมพวเตอร
![Page 68: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/68.jpg)
คน
อาจารยนกศกษา
1
2
![Page 69: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/69.jpg)
คน
- รหสประจ าตวประชาชน
-ชอ-สกล
-ทอย
+บอกชอ-สกลได()
นกศกษา
- รหสประจ าตวประชาชน
-ชอ-สกล
-ทอย
+บอกชอ-สกลได()
อาจารย
- รหสประจ าตวประชาชน
-ชอ-สกล
-ทอย
+บอกชอ-สกลได()
เมอเพมรายละเอยดลงไป
![Page 70: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/70.jpg)
สราง Project ใหม
![Page 71: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/71.jpg)
ADD Class
![Page 72: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/72.jpg)
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 73: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/73.jpg)
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 74: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/74.jpg)
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 75: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/75.jpg)
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 76: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/76.jpg)
ออกแบบหนาจอ เพอรบชอ นามสกล รหส ทอย
txtID txtFullname
txtAddress
btnCancel
btnOK
lbDisplay
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 78: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/78.jpg)
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 79: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/79.jpg)
จะเหนไดวา คลาสอาจารย สามารถเขาถงหรอเรยกใช attribute / function จากคลาสพอแม หรอคลาส person ไดโดยไมตองมา
สรางใหม
![Page 80: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/80.jpg)
![Page 82: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/82.jpg)
คน
- เลขประจ าตวประชาชน
-ชอ-สกล
-ทอย
+บอกชอ-สกลได()
นกศกษา
- รหสประจ าตวประชาชน
-ชอ-สกล
-ทอย
+บอกชอ-สกลได()
อาจารย
เมอเพมรายละเอยดลงไป
อาจารยประจ าอาจารยพเศษ
![Page 83: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/83.jpg)
คน
- รหสประจ าตวประชาชน
-ชอ-สกล
-ทอย
+บอกชอ-สกลได()
นกศกษา อาจารย
เมอเพมรายละเอยดลงไป
อาจารยประจ าอาจารยพเศษ
นศ. ภาคปกตนศ. ภาคพเศษ
![Page 84: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/84.jpg)
คน
- รหสประจ าตวประชาชน
-ชอ-สกล
-ทอย
+บอกชอ-สกลได()
นกศกษา อาจารย
เมอเพมรายละเอยดลงไป
อาจารยประจ าอาจารยพเศษ
นศ. ภาคปกตนศ. ภาคพเศษ
นศ. ผชายนศ. ผหญง
![Page 85: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/85.jpg)
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 86: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/86.jpg)
คน
- รหสประจ าตวประชาชน
-ชอ-สกล
-ทอย
+บอกชอ-สกลได()
นกศกษา
- รหสประจ าตวนกศกษา
- ผลการเรยน
อาจารย
- รหสอาจารย
- สาขาวชา
- คณะ
+ตดเกรดได()
+ ลงทะเบยนเรยนได ()
กลไกทมประโยชนของInheritance ท าใหเกดReusable
![Page 87: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/87.jpg)
แบบฝกหด
Problem Domain 1“โรงพยาบาลแหงหนงมบคลากรอย 4 ประเภทดงน
1. แพทย 2. พยาบาล 3. คนไข 4. เจาหนา”นอกจากน ยงมบรษพยาบาล อกดวย
Problem Domain 2“หากเราจะจ าแนกประเภทของพนกงานในบรษทสามารถแบงออกเปนพนกงานเตมเวลา และพนกงานพารทไทม”
จงสรางแผนภาพเพอแสดง Generalization / Specialization จาก Problem Domain ทก าหนดใหตอไปน
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 88: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/88.jpg)
Generalization Implementation in OOP
• แนวคดตามหลกการเชงวตถ
– Generalization จดการ classes ใหอยในรปของโครงสรางล าดบช น (class hierarchy) ขนกบsimilarities และ differences
– เราเรยกคลาสทอยในระดบทสงกวาของ classes hierarchy วา “superclasses” และทอยในระดบต ากวาวา “subclasses”
– ความสมพนธเปนแบบ “kind-of” relationship
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 89: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/89.jpg)
Inheritance and Polymorphism
• “subclass” รบถายทอดคณสมบต (inherits) อนไดแกattributes, operations และassociations มาจาก“superclass” ของตวเอง
• แตอยางไรกตาม ถา attribute หรอ operation ของ“superclass” ถกก าหนดใหคาใหมใน “subclass” จะเปนการ “overrides” ค านยามทก าหนดไวใน“superclass”
• ซงจะน าไปสแนวคดของ polymorphism
![Page 90: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/90.jpg)
สตว
- ชอ
+ กน()
การทา Override ทาใหเกด Polymorphism
แมว นก
+ กน() + กน()
คน
+ กน()
แมวเปนสตวชนดหนงคน เปนสตวชนดหนงนก เปนสตวชนดหนง
*** ดงนน คน ตองมการปรบวธกน () ใหเหมาะกบ คน โดยใชชอน หรอ ซอมในการกน เรยกวาการ override method
![Page 91: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/91.jpg)
Superclasses and Subclasses
• “Superclass” มค านยาม attributes, operations และassociations รวมกนกบ “subclasses” ของคลาสน นๆ
• “Subclasses” ม attributes, operations และ associations เฉพาะเปนของตวเอง โดยเลอกทจะก าหนดนยามใหมใหกบ attribute, operation หรอ relationship ทรบมาจาก “superclass” หรอไมกได
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
*** subclass รบคณสมบตมาจากพอแม จะมการปรบเปลยนหรอไมกได
![Page 92: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/92.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 93: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/93.jpg)
ในทาง Object Orientation เราใชสญลกษณลกศรซงหวลกศรเปนรปสามเหลยมใสชจาก Subclass ไปยง Superclass เพอแสดงการท า Inheritance ดงรป
บญชเงนฝากธนาคาร
-ธนาคาร-ชอบญช
-อตราดอกเบย#ยอดคงคาง
+ฝาก()+ถอน()
บญชออมทรพย
+ช าระคาสาธารณปโภค
บญชกระแสรายวน
-คาธรรมเนยม
+ช าระเชครายวน
![Page 94: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/94.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 95: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/95.jpg)
3. Public Attributes/Functions จะถายทอดมาเปน Public Attributes/Functions ของ Subclass เสมอ
บญชเงนฝากธนาคาร
-ธนาคาร-ชอบญช
-อตราดอกเบย#ยอดคงคาง
+ฝาก+ถอน
Superclass Subclass
บญชออมทรพย
-ธนาคาร-ชอบญช
-อตราดอกเบย#ยอดคงคาง
+ฝาก+ถอน+ช าระคาสาธารณปโภค
บญชกระแสรายวน
-ธนาคาร-ชอบญช
-อตราดอกเบย#ยอดคงคาง-คาธรรมเนยม
+ฝาก+ถอน+ช าระคาสาธารณปโภค
![Page 96: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/96.jpg)
![Page 97: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/97.jpg)
![Page 98: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/98.jpg)
A Generalization Hierarchy
Geometric_Figure
#X_Position
#Y_Position
Ellipse
- Major_Axis
- Minor_Axis
Circle
- Radius
Rectangle
- Width
- Height
Superclass
Subclasses
![Page 99: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/99.jpg)
Class Diagrams-inheritance
![Page 100: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/100.jpg)
Class diagrams-inheritanceA simple example of inheritance in Java:
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 101: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/101.jpg)
Class diagrams-inheritance
![Page 102: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/102.jpg)
Class diagrams-inheritance
Clock
- currentTime : Time
+setTime(Time t)
+getTime() : Time
AlarmClock
- alarmOn : Boolean
- alarmTime : Time
+ setAlarm(boolean on_off)
กลไกทมประโยชนของInheritance ท าใหเกดReusable
+ setAlarmTime(Time t)
![Page 103: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/103.jpg)
Class diagrams-inheritance
![Page 105: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/105.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 106: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/106.jpg)
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 107: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/107.jpg)
คน
- รหสประจ าตวประชาชน
-ชอ-สกล
-ทอย
+บอกชอ-สกลได()
นกศกษา
- รหสประจ าตวประชาชน
-ชอ-สกล
-ทอย
+บอกชอ-สกลได()
อาจารย
- รหสประจ าตวประชาชน
-ชอ-สกล
-ทอย
+บอกชอ-สกลได()
![Page 108: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/108.jpg)
คน
- รหสประจ าตวประชาชน
-ชอ-สกล
-ทอย
+บอกชอ-สกลได()
นกศกษา
- รหสประจ าตวนกศกษา
- ผลการเรยน
อาจารย
- รหสอาจารย
-สาขาวชา
-คณะ
+ตดเกรดได()
+ ลงทะเบยนเรยนได ()
กลไกทมประโยชนจากการท า Inheritance
![Page 109: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/109.jpg)
Single & Multiple Inheritance
• generalizations มกเกดใน class hierarchies ทแตละ “subclass” มเพยง 1 “superclass” เรยกวา “single inheritance”
• แตมบางสถานการณท “subclass” อาจมไดมากกวา 1 “superclass” เรยกวา “multiple inheritance”
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 110: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/110.jpg)
Multiple Inheritance
Employee
GeneralStaff ProfStaff FullTime PartTime
AcademicSubclass withtwo superclasses
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
*** นกวชำกำร เปนทงสองอยำง คอ ไดรบกำรสบทอดมำจำกสองคลำสคอเปนไดทง พนงงำนเตมเวลำ และพนกงำนช ำนำญกำร
![Page 111: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/111.jpg)
Multiple Inheritance
Vehicle Furniture
Wheelchair
*** วลแชร จดวำเปนทง เฟอรนเจอร และ เปนยำนพนะ
![Page 112: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/112.jpg)
Multiple Inheritance การท า Inheritance ยงมกรณทเราท า Inherit จาก Superclass ทมากกวา 1 ตว เพอใหได Subclass ทมคณสมบตพเศษเพยงตวเดยว หรอมากกวา
เครองเลน CD เพลง
-ยหอ-จ านวนชองเกบ CD
+เลนเพลง()
เครองเลน Video CD
-ยหอ
+เลน Video()
เครองเลน CD
-ยหอ-จ านวนชองเกบ CD
+เลนเพลง()+เลน Video()
![Page 113: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/113.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 114: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/114.jpg)
• Polymorphism
การท Subclass ทเกดจากการ Inherit จาก Superclass และมการดดแปลง Functions บางอยางไมไดยดตาม Superclass ทงหมด จะเรยก Class นนมคณสมบต Polymorphism
Polymorphism เปนตวการทจะท าให Subclass ทมFunctions เดยวกนกบ Superclass (หรออกนยหนงคอ Subclass ทม Functions เปนชอเดยวกนกบ Functions ในSuperclass) มการท างานทแตกตางกน
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 115: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/115.jpg)
รถยนต
- ยหอ- รน
+ วงเดนหนา+ วงถอยหลง+ เลยว
รถตนตะขาบ
รถตนตะขาบ
- ยหอ- รน
+ วงเดนหนา+ วงถอยหลง+ เลยว
เลยวโดยวธการใชพวงมาลย
รป ภาพจ าลองแสดง Polymorphism
เกด Polymorphism
เลยวโดยวธการหยดลอ
![Page 116: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/116.jpg)
เครองบน
- มปกเฮลคอปเตอร
- มใบพด+ บน()
+ บน()
อากาศยาน
+ บน()
บนไดดวยปก บนไดดวยใบพด
เกด Polymorphism
![Page 117: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/117.jpg)
คน
- มขามา
- มขา+ วงได()
+ วงได()
สงมชวต
+ วงได()
วงไดดวย สอง ขา วงไดดวยสขา
เกด Polymorphism
![Page 118: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/118.jpg)
คน
- มขา
มา
- มขา
+ วงได()+ วงได()
สงมชวต
+ วงได()
วงไดดวย สอง ขา วงไดดวยสขา
เกด Polymorphism
คนพการ
- ขาเทยม
+ วงได()วงไดดวย ขาเทยม
![Page 119: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/119.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 120: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/120.jpg)
Specialization
• Specialization เปนกระบวนการยอนกลบของ generalization แตใหผลเชนเดม แตกตางกนทจดเร มตนเทาน น
• Generalization เปนการคนหาคณลกษณะรวมกน ของ(sub)classes
• Specialization เปนการแยก และคนหาคณลกษณะพเศษของ (super)classes เพอใหได subclasses
![Page 121: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/121.jpg)
Generalization and Classification (= is_a?)
1. Shep is a Border Collie.
2. A Border Collie is a Dog.
3. Dogs are Animals
4. A Border Collie is a Breed.
5. Dog is a Species
1+2: Shep is a Dog
1+2+3: Shep is a animal
1+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 122: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/122.jpg)
Polymorphism in VB.NET
Public Class ShapePublic 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 123: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/123.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 124: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/124.jpg)
Polymorphism in VB.NET
Private 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 = s3s1.draw()
End Sub
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 125: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/125.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 Shape
s.draw()
Dim s1 As Rectangle = New Rectangle
s1.draw()
Dim s3 As New Circle
s1 = s3s1.draw()
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 126: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/126.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 127: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/127.jpg)
การสบทอดINHERITANCE
(in JAVA)
in java
![Page 128: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/128.jpg)
เราจะทราบถงสงทอางองเมอไดท าการสรางวตถแลว แตถาการเขยนสงทอยภายในคลาส ยงไมไดถกสรางเปนวตถ เราจะอางไดอยางไร ค าวา “this” เปนวธทชวยใหการอางองตวมนเองโดยยงไมตองสรางวตถกสามารถท าได
• Using this with a Field
• Using this with a Constructor
This References
in java
![Page 129: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/129.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 130: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/130.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 131: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/131.jpg)
• Inheritance เปนรปแบบของการน ากลบมาใชใหมของซอฟตแวร ซงคลาสใหมจะถกสรางจากการรบสงตางๆจากคลาสทมอย ทงสวน Attribute และสวนของMethod และคลาสใหมยงสามารถเพมเตมความสามารถบางประการตามตองการ
• ดงนนคลาสทถกสรางใหมจะไดรบคณสมบตของคลาสเดมและเพมคณสมบตบางประการ
INHERITANCE
in java
![Page 132: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/132.jpg)
INHERITANCE
in java
![Page 133: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/133.jpg)
สมมตวาม Class A และเราตองการสราง class B ทไดรบคณลกษณะตางๆ จาก Class A สงทเราตองการตอนสราง class B คอการเพม keyword “extends” เขาไปดงแสดงในรป
รปแบบ
Class B extends A {
//definition of class B}
in java
![Page 134: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/134.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 135: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/135.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 136: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/136.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 137: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/137.jpg)
REFERENCEclass A {int x;}
class B extends A
{int y;}
a
A a = new A();B b = new B();
X
X
Y
b
in java
![Page 138: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/138.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 139: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/139.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 140: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/140.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 141: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/141.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 142: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/142.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 143: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/143.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
XX
in java
![Page 144: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/144.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 145: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/145.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 146: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/146.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 147: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/147.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 148: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/148.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 149: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/149.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 150: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/150.jpg)
Polymorphism
With java
in java
![Page 151: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/151.jpg)
เปนลกษณะการท างานของ method ชนดหนงทตองอาศยกลไกการท างานของ Inheritance และ Dynamic Binding
method จะสามารถตอบสนองการท างานไดหลายรปแบบขนอยกบ Object ทสงเขามาวาเปนของ class ใด กจะท าตามค าสงทไดเขยนไวใน method ของclass นน
Polymorphism
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 152: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/152.jpg)
อ.รชดำพร คณำวงษ 152
ตวอยางซเปอรคลาสและซบคลาส
• สมมตวาเรามคลาสเรมตนเปน คลาสชอ Shape บอกลกษณะของรปเรขาคณตของวตถ 2 มต
• มคลาส Square บอกลกษณะของสเหลยม และคลาสTriangle บอกลกษณะของสามเหลยม ทสบทอดลกษณะมาจากคลาส Shape
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 153: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/153.jpg)
อ.รชดำพร คณำวงษ 153
inheritance & overriding
class 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 154: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/154.jpg)
อ.รชดำพร คณำวงษ 154
inheritance & overriding
class 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 155: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/155.jpg)
อ.รชดำพร คณำวงษ 155
Polymorphism
class 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 156: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/156.jpg)
อ.รชดำพร คณำวงษ 156
Polymorphism
class 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 157: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/157.jpg)
![Page 158: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/158.jpg)
ค าถามทายบท
1. จงเขยนแผนภาพแสดง Generalization จาก Problem Domain ตอไปน
“Problem Domain 1 เมอเราพดถงฐานะของบคคล เราจะจ าแนกฐานะออกเปน 2 สวนคอ ทรพยสน และหนสน โดยทรพยสนจ าแนกออกเปน เงนสดและเงนฝากในบญช และเงนในรปแบบอนๆ ซงไดแก หน และหลกทรพย หนส น จ าแนกออกเปน หนสนระยะสน และหนสนระยะยาว”
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 159: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/159.jpg)
“Problem Domain 2 งานศลปะแบงออกเปน 3 ประเภทคอ งานจตรกรรม งานประตมากรรม และงานสถาปตยกรรม โดยงานจตรกรรมนน จ าแนกเปน ภาพวาด (งานลายเสน งานสน างานสน ามน งานสชอลค และงานสฝ น) และภาพพมพ งานประตมากรรม แบงออกเปน งานปน และงานหลอ สวนงานสถาปตยกรรมนน แบงออกเปน สถาปตยกรรมไทย และสถาปตยกรรมประยกต”
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 160: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/160.jpg)
2. ดวยหลกการ Generalization Abstract ของลกจาง กบหวหนางาน จะเปลยนเปนเชนไร เมอม Class ตอไปนเพมเขาไป
Class : ลกจางช วคราวAttributes : เงนเดอนFunctions : ปฏบตงาน
ลาพกงาน
Class : บรการระดบสงAttributes : เงนเดอน
ต าแหนงเงนประจ า
ต าแหนงFunctions : ปฏบตงาน
ลาพกงานส งงานวางนโยบาย
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
![Page 161: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/161.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 162: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/162.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
Class D
+ Attr1
+ Attr2
+ Attr6
# Attr4
# Attr5
# Attr7
+ Func3
+ Func6
+ Func7
+ Func8
+ Func10
![Page 163: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/163.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]
![Page 164: Last Update : 16/08/2562siam2dev.net/.../Lec03_3_Generalization...2562_PDF.pdf · Specialization คือการตอบค าถามว่าใน Class หนึ่ง ๆ](https://reader033.vdocuments.us/reader033/viewer/2022060209/5f045eb97e708231d40da440/html5/thumbnails/164.jpg)
Inside View ของ Class D