Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore Chapter_1_Introduction_Object

Chapter_1_Introduction_Object

Published by sajeewan.p, 2019-09-01 04:58:18

Description: อาจารย์สจีวรณ ปราชญ์ศรี
สาขาเทคโนโลยีสารสเทศ คณะเทคโนโลยีสารสนเทศ

Search

Read the Text Version

หลักการเชิงวัตถุเป็นการมอง การพัฒนาระบบ คือมองสิ่งต่างๆ เป็น วัตถุหรือออบเจ็กต์ ซึ่งแต่ละออบเจ็กต์ จะมีคุณสมบัติและการทางานเฉพาะตัว บ า ง อ อ บ เ จ็ ก ต์ ก็ มี ค ว า ม สั ม พั น ธ์ กั บ ออบเจ็กต์อื่นๆ และถ้าออบเจ็กต์ที่มี คุณลักษณะบางประการคล้ายกัน เราก็ จะจัดกล่มุ ให้แก่ออบเจ็กต์ บทที่ 1 หลักการเชงิ วตั ถุ อาจารยส์ จีวรณ ปราชญ์ศรี สาขาเทคโนโลยีสารสเทศ คณะเทคโนโลยีสารสนเทศ

แผนบรหิ ารการสอนประจาบทที่ 1 หลกั การเชงิ วตั ถุ หวั ข้อเนื้อหา ออบเจ็กต์ องคป์ ระกอบของออบเจก็ ต์ คลาส การห่อหุ้มขอ้ มูล การซ่อนข้อมลู การแบง่ ประเภทของออบเจ็กต์ การสบื ทอดคุณสมบัติ โพลมี อร์พิซึม ความสมั พนั ธ์ระหวา่ งออบเจก็ ต์ ความสัมพันธ์ ความสมั พันธแ์ บบส่วนประกอบ วัตถปุ ระสงคเ์ ชิงพฤติกรรม เมื่อผูเ้ รียนศึกษาบทเรยี นนี้แล้วสามารถ 1. อธิบายความหมาย และองค์ประกอบของออบเจ็กต์ได้ 2. อธบิ ายความหมายคลาสได้ 3. อธบิ ายถึงการแบ่งประเภทของออบเจ็กต์ได้ 4. อธิบายถึงการสบื ทอดคุณสมบตั ิ และโพลมี อรพ์ ิซึมได้ 5. อธบิ ายความสัมพันธร์ ะหว่างออบเจ็กตไ์ ด้ วธิ ีสอนและกจิ กรรมการเรยี นการสอน 1. วธิ ีสอนแบบบรรยาย เริ่มจากเหตุการณใ์ นชวี ติ ประจาวัน สงิ่ ทอ่ี ยู่รอบๆตัวเรา เพ่ือนาเขา้ สู่ การบรรยาย มีการตั้งคาถาม ตอบคาถามระหว่างผสู้ อนและผู้เรยี น 2. กิจกรรมการเรียนการสอน 2.1 แสดงตัวอยา่ งของออบเจก็ ต์ 2.2 แบ่งกลมุ่ อภปิ รายเร่ือง หลกั การเชิงวตั ถุ 2.3 ทาแบบฝึกหัดทา้ ยบทท่ี 1 สื่อการเรยี นการสอน 1. เอกสารประกอบการสอนบทท่ี 1 2. พาวเวอร์พอยท์ พรีเซนเตช่ัน (power point presentation) เร่ือง หลักการเชงิ วัตถุ 3. ตวั อย่างการประยกุ ตใ์ ชค้ อมพวิ เตอร์ 1

การวัดผลและการประเมนิ ผล 1. สังเกตการตอบคาถามและตัง้ คาถาม 2. สังเกตจากการอภิปราย ซักถามและการแสดงความคิดเห็น 3. วดั เจตคตจิ ากการสังเกตพฤตกิ รรมความกระตือรอื ร้นในการทากิจกรรม และคณุ ภาพของงาน 2

บทที่ 1 หลักการเชงิ วัตถุ หลักการเชิงวัตถุเป็นการมองการพัฒนาระบบ คือมองสิ่งต่างๆ เป็นวัตถุหรือออบเจ็กต์ ซึ่งแต่ละ ออบเจ็กต์จะมีคุณสมบัติและการทางานเฉพาะตัว บางออบเจ็กต์ก็มีความสัมพันธ์กับออบเจ็กต์อ่ืนๆ และถ้า ออบเจ็กต์ท่ีมีคุณลักษณะบางประการคล้ายกัน เราก็จะจัดกลุ่มให้แก่ออบเจ็กต์เหล่าน้ัน จึงมีความจาเป็นที่ จะต้องเรียนรู้หลักการเชิงวัตถุ เพ่ือให้เกิดความเข้าใจลักษณะของออบเจ็กต์ การแบ่งประเภทของออบเจ็กต์ และความสมั พนั ธ์ระหว่างออบเจ็กต์ 1. ออบเจก็ ต์ (Object) กิตติ ภักดีวัฒนะกุล (2552) กล่าวว่า ออบเจ็กต์ คือ วัตถุต่างๆที่มองเห็นและจับต้องได้ (Tangible Objects) เชน่ เครอื่ งคอมพวิ เตอร์ รถยนต์ บ้าน และทีม่ อี ยจู่ ริงแต่ไมส่ ามารถจับต้องได้ (Intangible Objects) เช่น เวลา ความรู้ อษั ฎาพร ทรัพย์สมบูรณ์ (2555) กล่าวว่า ออบเจ็กต์ คือ วัตถุ ส่ิงท่ีเป็นรูปธรรมและนามธรรม ที่มีอยู่ จริงบนพ้ืนโลก สิ่งท่ีมีลักษณะเป็นรูปธรรม (จับต้องได้) เช่น จักรยาน, รถ, สุนัข, องค์กร, ใบรายการสินค้า, เป็นต้น ส่งิ ท่ีมีลกั ษณะเป็นนามธรรม (จับตอ้ งไม่ได)้ เชน่ ความเปน็ เจ้าของ, ความคดิ , ความรูส้ ึก เป็นตน้ สุนทริน วงศ์ศิริกุล และ ชัยวัฒน์ สิทธิกรโอฬารกุล (2550) กล่าวว่า ออบเจ็กต์ คือส่ิงใดๆที่เราสนใจ อาจจะเป็นสิ่งท่ีจับต้องได้ เช่น สินค้า ลูกค้า หรืออาจจะเป็นส่ิงท่ีจับต้องไม่ได้ เช่น บริษัทฝ่ายต่างๆ โดยท่ี ออบเจ็กต์ตา่ งๆจะสามารถติดต่อสื่อสารกันได้ดว้ ยการเมสเสจ (message) ถึงกนั จากข้างต้น สรุปได้ว่า ออบเจ็กต์ คือ วัตถุทุกอย่างที่อยู่รอบๆตัวเราทั้งท่ีเป็นรูปธรรมและนามธรรม เช่น วัตถุท่ีเป็นรูปธรรม ได้แก่ คน สัตว์ ส่ิงของ รถยนต์ ที่อยู่อาศัย หรือวัตถุที่เป็นนามธรรม ได้แก่ กฏหมาย ประเพณี ความดี ความเป็นเจา้ ของ 1.1 องค์ประกอบของออบเจก็ ต์ ออบเจ็กต์ทุกๆตัว จะต้องประกอบด้วย 3 องค์ประกอบ ได้แก่ แอทริบิวส์ เมธอด และ ความเป็น ปัจเจก (กติ พิ งษ์ กลมกลอ่ ม ,2552) 1.1.1 แอทริบวิ ส์ (Attribute) แอทริบิวส์ หมายถึง ส่ิงที่บ่งบอกคุณลักษณะของออบเจ็กต์ หากเป็นวัตถุที่อยู่ในคลาสเดียวกัน จะมีคณุ ลกั ษณะเหมือนกนั แอทรบิ วิ สข์ องวัตถุ คอื ข้อมูลของวัตถุนั้นๆท่ีมีอยู่ เช่น รถยนต์ จะประกอบด้วย ล้อ สี รุ่น ยี่ห้อ เป็นตน้ ตัวอยา่ งเช่น คน มแี อทริบวิ ส์ คือ รหัสประจาตัวประชาชน ชือ่ นามสกลุ วนั เกิด พัดลม มแี อทริบิวส์ คือ ยห่ี อ้ สี 1.1.2 เมธอด (Method) เมธอด คือ การแสดงพฤติกรรมของตนร่วมกับวัตถุอื่นๆที่มีหน้าท่ีต่างกัน ดังนั้น เมธอด คือ พฤตกิ รรมท่วี ัตถแุ สดงออกมา เชน่ รถยนต์ มเี มธอด ได้แก่ วงิ่ ถอยหลงั เลย้ี วซา้ ย เลีย้ วขวา ตัวอย่างเช่น จงหาแอทริบิวสแ์ ละเมธอด ได้แก่ สุนขั ทหาร โต๊ะ 3

สนุ ัข แอทริบิวส์ คอื สี สายพนั ธุ์ น้าหนกั เมธอด คือ เดิน กิน นอน ทหาร แอทรบิ ิวส์ คอื เลขบัตรประชาชน ช่อื นามสกลุ เมธอด คือ เดิน กนิ นอน โต๊ะ แอทรบิ วิ ส์ คือ ร่นุ สี เมธอด คอื การใชง้ าน ซ่อม 1.1.3 ความเปน็ ปัจเจก ความเป็นปัจเจก คือ ทุกวัตถตุ อ้ งมีคุณลกั ษณะเฉพาะประจาตวั (Identity) - วัตถุใดๆในคลาสเดียวกนั อาจมีคา่ ของคณุ สมบตั ิ(Attribute) ตา่ งกนั - วตั ถใุ ดๆในคลาสเดยี วกนั มีพฤติกรรม (Behavior หรอื Method) เหมือนกัน 1.2 คลาส (Class ) (กิตติพงษ์ กลมกลอ่ ม & กิตติ ภักดีวัฒนะกุล, 2552, หน้า 7) ได้กลา่ วว่า คลาส คอื การจัดกลมุ่ ของ ออบเจ็กตข์ ึน้ โดยการให้ Concept กบั ออบเจ็กต์ต่างๆท่ีสนใจ ซึ่ง Concept คอื ความรวบยอดที่มีใหก้ ับใดๆ ภายใตก้ รอบทีก่ าหนด เชน่ ถ้าต้องการให้ Concept กบั ปากกา นนั่ คอื ปากกาทกุ ด้ามต้องมี ปอก ไส้ ใช้ สาหรบั เขยี น เป็นตน้ ดังน้ัน คลาส หมายถึง การนาออบเจ็กต์ที่มีคุณสมบัติและการกระทา ท่ีเหมือนๆกัน มารวมกลุ่มเป็น กลุ่มเดียวกัน การจัดกลุ่มของออบเจ็กต์ข้ึน ซ่ึงกลุ่มของออบเจ็กต์ ท่ีได้จากกระบวนการน้ีเรียกว่า Abstract Objects หรอื เรยี กอกี หนง่ึ วา่ คลาส ตัวอย่างเช่น รถยนต์ฮอนด้า รถยนต์โตโยต้า และรถยนต์มาสด้า ต่างก็มี 4 ล้อ มีเครื่องยนต์ และใช้น้ามันเป็น เชอื้ เพลงิ เหมอื นๆ กัน ซ่ึงสามารถจัดให้รถทัง้ สามนี้อยู่ในคลาส “รถยนต์” แต่เราไม่สามารถจัดเอารถเข็น และ รถมอเตอรไ์ ซค์เขา้ ไว้ในคลาสรถยนตไ์ ด้ เพราะรถเข็นไม่ได้ใช้น้ามันเป็นเช้ือเพลิง ในขณะท่ีรถมอเตอร์ไซค์ไม่ได้ มี 4 ลอ้ ซึง่ Concept ที่กล่าวมาของรถท้ังสองน้ันไมต่ รงกับ Concept ของคลาส รถยนต์ ดงั ภาพท่ี 1.1 รถยนต์ ล้อ เครื่องยนต์ เชือ้ เพลงิ ภาพท่ี 1.1 แสดงการรวมตวั ของออบเจ็กตเ์ พื่อเกิดคลาสรถยนต์ ถ้าพูดว่า รถวิ่งไปบนถนน ในโลกของ Object Orientation น้ัน ถือว่าไม่ได้เป็นเหตุการณ์ที่เกิดขึ้น จริงๆ เพราะคาว่า “รถ” จะหมายถึง “แนวความคิด ของการรวมเอาตัวถังรถ ล้อ และเครื่องยนต์มารวมกัน” และ “ถนน” กจ็ ะหมายถึง “แนวความคิด ของส่ิงหนึ่งซ่ึงอยู่บนพ้ืนโลก ที่ทาไว้เพ่ือให้ยานพาหนะทางบกวิ่งไป ได้ ” แตถ่ า้ พูดวา่ รถยนตข์ องนาย ก วงิ่ ไปบนถนนมติ รภาพ นัน่ หมายถงึ รถของนาย ก ซ่ึงมีอยู่จริงในโลก (และ 4

สามารถจับต้องได้) และเป็นออบเจ็กต์ของคลาส “รถยนต์” วิ่งไปบนถนนมิตรภาพ ซึ่งเป็นออบเจ็กต์ของ Class “ถนน” เมอื่ พูดว่า “สมชาย แตง่ งานกับ สมหญงิ ” จะหมายถึง สมชายเป็นออบเจ็กต์ของคลาส ผู้ชายแต่งงาน กบั สมหญิง ท่ีเป็นออบเจ็กต์ของ คลาส ผูห้ ญิง เมื่อเราพูดว่า “หนังสือ Object Orientation ถูกซ้ือโดยนาย ก” จะหมายถึง นาย ก เป็น ออบเจ็กต์ ของ คลาส คนซื้อ และหนังสอื Object Orientation เป็นออบเจ็กต์ ของ คลาส หนงั สอื จากตัวอย่างท่ีผ่านมา จะเห็นว่า คลาส ต่างๆ ท้ังหมดสิ่งท่ีเราสนใจ คือสิ่งที่อยู่ในความคิดของเรา ซงึ่ ไม่สามารถทากิจกรรมใดๆให้เกิดขนึ้ จริงได้ แต่ถา้ เราตอ้ งการให้เกิดกิจกรรมขึ้นในระบบคอมพิวเตอร์ของเรา เราต้องสร้างออบเจ็กต์ของคลาสข้ึนมาในคอมพิวเตอร์ของเราเสียก่อน เพื่อให้ออบเจ็กต์อื่นๆ สามารถทางาน ด้วยของมันเองได้ ซึ่งหากเราจะเทียบกับแนวทางการพัฒนาโปรแกรมแบบเดิม (Traditional System Analysis and Design) แล้ว คลาสจะคล้ายคลึง (แต่ไม่เหมือน) กับชนิดของตัวแปร และ ออบเจ็กต์จะ คลา้ ยคลงึ (แต่ไม่เหมือน) กบั ตวั แปร 1.3 การห่อหุ้มข้อมลู และ การซอ่ นขอ้ มลู ออบเจก็ ต์แต่ละตัวจะมีการทางานร่วมกัน โดยในการทางานร่วมกันจะมีขอบเขตการทางาน การแบ่ง งานระหว่างออบเจก็ ต์ตามความสามารถท่อี อบเจ็กตท์ าได้ และระดบั การเขา้ ถงึ ออบเจ็กตแ์ ต่ละตวั 1.3.1 การห่อหุ้มข้อมูล (Encapsulation) คือ กระบวนการในการซ่อนรายละเอียด คุณลักษณะต่างๆ ของคลาสไว้ โดยในการที่ส่ิงต่างๆภายนอกจะติดต่อกับคลาสได้ จะต้องทาการติดต่อผ่าน ช่องทางทคี่ ลาสเตรยี มไว้ (กิตติ ภกั ดีวัฒนะกลุ ,2552) 1.3.2 การซ่อนข้อมูล (Information Hiding) คือการซ่อนรายละเอียดของ Attribute และ Method ของคลาส ซงึ่ มีหลายระดบั ซึง่ ขนึ้ อยกู่ บั ความจะเปน็ ในการปกปดิ รายเอียดไดอ้ ย่างไร 1.3.3 Visibility คือ การกาหนดระดับการเข้าถึงข้อมูลของ Attributeและ Method ซึ่งแบ่ง ได้ 3 ระดับ คือ 1) Public สามารถเข้าถึงท้ังหมด คือ Attributes และ Functions ท่ีสามารถ มองเหน็ ได้และสามารถเรยี กใชไ้ ด้โดยตรงจากภายนอก ตัวอย่างเช่น ลักษณะต่างๆ ของคนซึ่งสามารถมองเห็น ได้จากภายนอก เช่น สีของผม สีผิว เป็นต้น ตามปกติแล้ว จะใช้เครื่องหมาย (+) กากับไว้หน้า Public Attributes และ Public Function เพ่ือความเข้าใจในเร่ืองประเภทของ Attributes และ Functions ขอให้พิจารณา จากรปู ตอ่ ไปน้ีจะไดเ้ ขา้ ใจขนึ้ 2) Protected สามารถเข้าถึงได้เฉพาะ Class และ SubClass คือ Attributes และ Functions ท่ีไม่สามารถเห็นได้จากภายนอกแต่เป็นส่วนท่ีสามารถส่งต่อให้ Inherited Class ได้เท่าน้ัน ตัวอย่างของ Protected Attributes ในชีวิตจริงก็คือ ลักษณะต่างๆ ที่ลูกสืบทอดทางกรรมพันธุ์มาจากพ่อแม่ เปน็ ตน้ จะใช้เคร่อื งหมาย (#) กากบั ไวห้ น้า Protected Attributes และ Protected Function 3) Private คือ สามารถเข้าถึงได้เฉพาะ Class Attributes และ Functions ที่ไม่ สามารถมองเห็นได้เลยจากภายนอก หนทางเดยี วทจ่ี ะเขา้ ถึง Attributes เหล่านไ้ี ด้คือ ต้องผ่านทาง Function ที่ Class มีไว้เพ่ือการเข้าถึง Attributes เหล่าน้ีเท่านั้น Private Function มีไว้เพื่อใช้งานภายในตัว Object ของ Class เท่าน้ัน ไม่สามารถถูกเรียกใช้ได้โดยตรงจากภายนอกได้ ตัวอย่างในชีวิตจริงของ Private Attributes เช่น อายุ ซ่ึงตามปกติ คนทั่วไปมักจะไม่บอก แต่ต้องมีการถามก่อน (น่ันคือการเรียก Function 5

บอกอายุ ใน Class คนนั่นเอง) ตามปกติแล้ว จะใช้เคร่ืองหมาย (-) กากับไว้หน้า Private Attributes และ Private Function ทุกๆ Function จะมีชนิดเป็น Public Function เพราะเป็นส่วนที่ยินยอมให้ Class อ่ืนมา เรียกใช้ได้ ในขณะที่ Attributes ส่วนใหญ่จะมีชนิดเป็น Private Attributes เพราะเป็นส่วนท่ีปกปิดไว้ โดย การเรียกดูหรือเรียกใช้จะต้องกระทาผ่าน Function ของ Class ท่ีเตรียมไว้ให้ ยกเว้น Attributes นามสกุล ของ Class คนเท่าน้ันที่มีประเภทเป็น Protected Attributes เพราะในโลกของความเป็นจริง นามสกุลเป็น สว่ นที่จะถา่ ยทอดไปให้ลูกหลานได้ ซึง่ ตรงกบั แนวคิดและจดุ ประสงค์ของ Protected Attributes ด้วยคุณสมบัติ การห่อหุ้มข้อมูล ทาให้ไม่สามารถเข้าถึงคุณสมบัติบางตัวของ ออบเจ็กต์ได้โดยตรง (เพราะคุณสมบัติเหล่านั้นถูกหุ้มด้วยเปลือกทึบ) แต่การเข้าถึงต้องผ่านพฤติกรรมท่ีสามารถมองเห็น และเรียก ใช้ได้เท่านั้น (เพราะพฤติกรรมเหล่าน้ันถูกหุ้มด้วยเปลือกใส) เรียกส่ิงท่ีเกิดข้ึนนี้ว่า ออบเจ็กต์มีคุณสมบัติ การซอ่ นขอ้ มูล (Information Hiding) ซง่ึ จากตัวอยา่ งข้างตน้ เม่ือมอง คลาสคน (ซึ่งมีสมศักดิ์และสมศรีเป็น ออบเจก็ ต์ 2 ตวั ในคลาส) สมศรี : คน สมศกั ด์ิ : คน อายุ อายุ บอกอายุ( ) บอกอายุ( ) ภาพที่ 1.2 คณุ สมบตั กิ ารซ่อนขอ้ มลู ซ่งึ เม่ือนาคณุ สมบตั ินี้มาพจิ ารณาเราสามารถสรุปได้ว่า ใน Class ผลไม้ Attributes ท่ีเราสนใจไดแ้ ก่ รสชาด และสี Attribute หมายถึง คุณสมบัตติ ่างๆ ทใ่ี ช้บรรยาย Object โดยคุณสมบตั ิเหลา่ น้ี จะอยู่ภายใน Domain ทเ่ี ราสนใจ Function ในทาง Object Orientation นน้ั Objects เปน็ ไดม้ ากกว่าส่งิ ทม่ี ี Attributes เพราะ Objects สามารถทาให้เกดิ กิจกรรมตา่ งๆ ได้ ซึ่งเราเรียกวา่ Function เราสามารถหา Objects ได้ 2 ตัว คือ นาย ก และ คอมพิวเตอร์ยี่ห้อ A และหา Class ได้ 2 Class คอื คน (นาย ก เป็นคน) และคอมพิวเตอร์ (คอมพวิ เตอร์ยหี่ อ้ A เป็นคอมพวิ เตอร์) เม่ือวเิ คราะหจ์ ะพบว่า Interaction ที่เกดิ ขึน้ ก็คือ นาย ก เปดิ เคร่ืองคอมพิวเตอร์ A นั่นหมายความว่า จะต้องมี Object ตัวใดตัวหนึ่งใน 2 ตัวน้ีที่สามารถทาให้กิจกรรม “เปิด” เกิดข้ึนได้ คาถามคือ ผู้ที่ทาให้ กิจกรรมนเี้ กดิ ขนึ้ คอื Object ตัวใด ทาความเข้าใจว่า “Objects ในโลกของ Object Orientation น้ันเป็น Objects ที่ถูกกระทา (Passive Objects)” ซึ่งจากตัวอย่างน้ี เมื่อต้องการให้เคร่ืองคอมพิวเตอร์ A เปิด ต้องมีใครสักคน หรืออะไร สักอย่างหน่ึงมาสั่งให้เคร่ืองคอมพิวเตอร์เปิด (เคร่ืองคอมพิวเตอร์ A เปิดด้วยตัวเองไม่ได้) นั่นหมายความว่า เคร่อื งคอมพิวเตอร์ A ตอ้ งมีความสามารถในการเปิด หรือมี Function เปิดอยู่ในตัวเอง แล้ว นาย ก เป็นผู้มา กระตุ้น (Trigger) ใหเ้ ครอ่ื งคอมพิวเตอร์ A เกดิ การ “เปิด” ข้นึ หรอื Function เปิดถูกเรียกใชง้ าน ดงั รูป 6

ภาพท่ี 1.3 นาย ก เปิดเคร่ืองคอมพวิ เตอร์ A (ตามแนวคิดของ Object Orientation) ทีม่ า กติ ติพงษ์ กลมกล่อม และ กติ ติ ภักดีวฒั นะกุล (2552) Function หมายถึง ความสามารถในการทากิจกรรมของ Object ที่มีไว้เพ่ือให้ Object อ่ืนๆ ใน Domain สามารถเรียกใช้ หรือกระตุ้นให้เกิดได้ เพื่อความเป็นมาตรฐานเดียวกัน จึงมีผู้คิดค้นสัญลักษณ์ เพือ่ การอธิบาย Class ดังรปู ตอ่ ไปน้ี Class Name Attribute 1 Attribute 2 . Attribute n Function 1 Function 2 . . Function n ภาพท่ี 1.4 แผนภาพ Class 2. การแบง่ ประเภทของออบเจ็กต์ เพื่อช่วยในการวิเคราะห์และออกแบบเชิงวัตถุมีการแบ่งประเภทของออบเจ็กต์ท่ีมีความแตกต่างกัน โดยสามารถแยกออกเปน็ 2 ประเภท คอื การสืบทอดคุณสมบตั ิ และโพลมี อรพ์ ิซึม คือ 2.1 การสบื ทอดคณุ สมบตั ิ การสบื ทอดคุณสมบตั ิ คือ การเขียนโปรแกรมเชิงวตั ถุทม่ี กี ารอนญุ าตให้มีการรบั ทอดจากคลาสใหม่ จากคลาสเกา่ ทม่ี ีอยูแ่ ลว้ เรยี กวา่ การรบั ทอด (Inheritance) โดยการรับทอดมคี วามสาคัญตอ่ คลาสนนั้ ๆ (วาย.แดเนยี ล เหลยี ง, 2007) การับทอด หมายถึง การท่ีคลาสหนึ่งหรอื หลายๆคลาส ถูกสร้างข้ึนใหม่ (เรียกวา่ Subclass) ภายใต้ คลาสใดๆ (เรียกวา่ Superclass) ด้วยการรบั ทอดคุณสมบตั ิ ไดแ้ ก่ แอทรบิ วิ สแ์ ละเมธอด ของคลาสนน้ั ๆมา ดว้ ย (พนิดา พานชิ กุล, 2548) ดงั น้นั การสืบทอดคณุ สมบัติ คือ การสรา้ งคลาสใหม่ท่ีได้รับทัง้ แอทรบิ วิ ส์และเมธอด จากคลาสเก่า ไปคลาสใหม่ 7

ภาพท่ี 1.5 แผนภาพการสบื ทอดคุณสมบตั ิ 2.2 โพลมี อร์พิซึม รากฐานของการพ้องรูป (Polymorphism) ก็คือ การถ่ายทอดคุณสมบัติ เพราะถ้าไม่มีการถ่ายทอด คุณสมบัติก็จะไม่เกิดสภาวะการพ้องรูป การถ่ายทอดคุณสมบัติเป็นเครื่องมือยืนยันได้ว่าคลาสลูกที่เกิดจาก คลาสแม่เดียวกนั ย่อมมคี ุณสมบตั ิเหมือนกัน (อษั ฎาพร ทรัพย์สมบรู ณ์, (2558).) Polymorphism หมายถึง การท่ีเราสามารถเขียนเมธอดชื่อเดียวกันให้สามารถรับพารามิเตอร์ได้ หลายชนิดและการเขียนเมธอดช่ือเดียวกับคลาสที่สืบทอดมา แต่ทางานคนละอย่างกัน โดยความหมาย แล้ว poly แปลว่าหลายหรือมาก ส่วนคาว่า morphism นั้นมาจากคาว่า morph ซ่ึงแปลว่ารูปร่าง เม่ือนา สองคามารวมกนั จะมีความหมายคอื การที่วัตถสุ ามารถมรี ปู รา่ งได้หลากหลาย ในเนื้อหาบทนี้หากจะกล่าวเร่ืองของการพ้องรูป หรือการพอลิมอร์ฟิซึมให้เข้าใจได้ชัดเจนยิ่งข้ึนคงจะ เป็นเรื่องของการ Overrides Overridable และ Overloads นั้นคือการท่ีมีเมธอดในคลาสลูกท่ีมีชื่อซ้ากับ เมธอดนั้นคลาสแม่ หรือ การที่เมธอดในคลาสลูกมีชื่อซ้ากันที่มากกว่าหนึ่ง ดังน้ันกระบวนการดังกล่าวจึงถือ เป็น กระบวนการพอลมิ อร์ฟซิ ึมดว้ ย การพอ้ งรปู (Polymorphism) ก็คือ การถ่ายทอดคณุ สมบัติ เพราะถ้าไม่มีการถ่ายทอดคุณสมบัติก็จะ ไมเ่ กดิ สภาวะการพ้องรูป การถ่ายทอดคุณสมบัติเป็นเครื่องมือยืนยันได้ว่าคลาสลูกท่ีเกิดจากคลาสแม่เดียวกัน ยอ่ มมีคณุ สมบัติเหมอื นกัน ภาพที่ 1.6 แผนภาพการพ้องรปู การท่ี Subclass ที่เกิดจากการ Inherit จาก Superclass แต่มีการดัดแปลง Functions บางอย่าง ไม่ไดย้ ดึ ตาม Superclass ทง้ั หมด จะเรียก Class นน้ั มคี ณุ สมบัติ Polymorphism Polymorphism เปน็ ตัวการท่ีจะทาให้ Subclass ที่มี Functions เดียวกันกับ Superclass (หรืออีก นัยหน่ึงคือ Subclass ท่ีมี Functions เป็นชื่อเดียวกันกับ Functions ใน Superclass) มีการทางานที่ แตกต่างกัน 8

3. ความสัมพันธร์ ะหวา่ งออบเจก็ ต์ ในระบบจะประกอบด้วยออบเจ็กต์หลายๆชนิด มีกิจกรรมท่ีเกิดขึ้นระหว่างออบเจ็กต์ ออบเจ็กต์ สามารถทางานประสานร่วมกันได้นั้นเป็นการเรียกใช้ความสามารถของออบเจ็กต์อ่ืนๆเป็นทอดๆ อย่างเป็น ระบบ ความสัมพันธ์ (Association) คือ การท่ีออบเจ็กต์จากคนละคลาสหรือคลาสเดียวกัน มีความสัมพันธ์กันและความสัมพันธ์นั้นคงอยู่ ทาให้สามารถธิบายผลการทางานของระบบได้ จะเรียก ความสัมพนั ธน์ ้วี ่า Association ซ่ึงหมายถึงความสัมพนั ธ์ระหว่างคลาสต่างๆในระบบเดียวกัน ในระบบเงนิ ฝากในธนาคารน้นั บัญชเี งินฝากเป็นคลาสหน่ึงของระบบ ลูกค้าแต่ละคนอาจจะเปิดบัญชี เงินฝากมากกว่า 1 บัญชีก็ได้ ดังน้ัน เม่ือลูกค้าเข้ามาขอหลักฐานการเป็นเจ้าของบัญชีเงินฝากจากธนาคาร ระบบเงินฝากของธนาคารจะต้องแสดงรายการบัญชีเงินฝากที่แสดงยอดเงินคงเหลือทั้งหมดของลูกค้าคนนี้ได้ ตามความต้องการ ดังน้ัน ลูกค้า จึงเป็นอีกคลาสหนึ่งที่มีในระบบเงินฝากในธนาคาร ออบเจ็กลูกค้า 1 ออบเจ็กต์มีความสัมพันธ์กับออบเจ็กต์บัญชีเงินฝากในธนาคารของเขาเท่าน้ัน จะไม่เก่ียวข้องกับออบเจ็กต์ บัญชีเงินฝากของลูกค้ารายอ่ืน ดังภาพที่ 1.3 แสดงแผนภาพความสัมพันธ์แบบ Association ระหว่างคลาส ลูกค้า และคลาสบญั ชเี งนิ ฝาก โดยใช้ความสัมพันธว์ า่ เปน็ เจา้ ของ บญั ชีธนาคาร เจ้าของ ลกู คา้ 1..* 1 เลขท่บี ัญชี 11 เลขทบี่ ตั รประชาชน ชื่อบญั ชี ชอื่ ยอดเงินคงเหลือ ที่อยู่ เปดิ ( ) เปิดบัญชใี หม่ ( ) ฝาก ( ) ฝาก ( ) ถอน ( ) ถอน ( ) ภาพที่ 1.7 แผนภาพความสัมพนั ธแ์ บบ Association ระหว่างคลาส ความสัมพันธ์ในระบบการลงทะเบียนเรียนของนักศึกษา นักศึกษา ถือเป็นออบเจ็กต์หน่ึงในระบบ วิชาที่เปิดให้นักศึกษาลงทะเบียนเรียนก็เป็นอีกออบเจ็กต์หน่ึง ท้ังนี้ เมื่อมีการลงทะเบียนเรียนเกิดขึ้น ออบเจ็กต์ นักศึกษาจะต้องมีความสัมพันธ์กับออบเจ็กต์รายวิชา ดังภาพท่ี 1.7 แสดงแผนภาพความสัมพันธ์ แบบ Association ระหว่างคลาสนักศึกษา (Student) ลงทะเบียนเรียน (register) รายวิชาการวิเคราะห์และ ออกแบบระบบเชงิ วตั ถุ (Course) นกั ศึกษา ลงทะเบียน รายวิชา รหัสนกั ศึกษา ** รหสั รายวิชา ชื่อ รายละเอยี ดรายวชิ า สาขาวิชา หนว่ ยกิต ลงทะเบียนเรียน ( ) เปดิ ( ) ปดิ ( ) ลงทะเบยี น ( ) ภาพที่ 1.8 แสดงแผนภาพความสมั พันธ์แบบ Association ระหวา่ งคลาส 9

Association ระหว่างคลาสคู่หน่ึง สามารถอธิบายถึงเง่ือนไขของความสัมพันธ์ด้วย เช่น การท่ีลูกค้า คนหน่ึงจะเป็นลูกค้าธนาคารได้จะต้องเปิดบัญชีอย่างน้อย 1 บัญชี แต่สามารถเปิดได้หลายบัญชีได้ ในการกลับกัน บัญชีเงินฝากหน่ึงๆ จะเป็นของลูกค้าเพียงรายเดียว ในระบบการลงทะเบียนเรียนของ มหาวิทยาลัยน้ัน นักศึกษาใหม่จะต้องมีการลงทะเบียนเรียนอย่างน้อย 1 วิชาเพื่อให้มีสถานะเป็นนักศึกษา เม่อื จบการศกึ ษานกั ศกึ ษาคนนัน้ จะตอ้ งเรียนหลายวิชา ในทางกลับกัน วิชาหนึ่งๆ เม่ือเปิดให้มีการลงทะเบียน กจ็ ะสามารถรองรับจานวนนักศึกษาไดห้ ลายคน หากวิชาใดไมม่ นี ักศกึ ษาลงทะเบียนเรียนแต่ก็ยังคงสถานะเป็น วิชาอยู่ ดงั นั้น จะเห็นไดว้ ่าความสมั พนั ธ์มรี ายละเอียดปลกี ย่อยทีแ่ ตกต่างไปตามเง่ือนไขท่ีกาหนดไว้ ความสัมพันธ์แบบส่วนประกอบ (Aggregation) คือ ออบเจ็กต์หน่ึงออบเจ็กต์สามารถมี ส่วนประกอบเป็นออบเจ็กต์ย่อยๆได้หลายชนิด เช่น เคร่ืองคอมพิวเตอร์โดยทั่วไปหนึ่งชุด จะมีอุปกรณ์ย่อยที่ สามารถทางานได้หลายอุปกรณ์ เช่น ฮาร์ดดิสก์ จอภาพ เม้าส์ เป็นต้น โดยท่ีอุปกรณ์แต่ละช้ินก็มีคุณสมบัติ และพฤตกิ รรมการทางานที่แตกตา่ งกนั ออกไป อาจจะมีอุปกรณย์ ่อยๆเป็นสว่ นประกอบไดอ้ ีกด้วย ในการลงทะเบียนของมหาวิทยาลัยก็มีคุณสมบัติและหน้าท่ีหลายอย่าง เช่น ท่ีอยู่ของนักศึกษาเป็น คุณสมบตั ิหนง่ึ ของนกั ศึกษา ซึง่ ประกอบเป็นกลุ่มของข้อมูล ได้แก่ บ้านเลขที่ ถนน ตาบล อาเภอ จังหวัด และ รหัสไปรษณีย์ โดยมีพฤติกรรมเฉพาะบางอย่าง ได้แก่ การแปลงเปล่ียนอาเภอ ก็ต้องเปลี่ยนรหัสไปรษณีย์ไป ด้วย เป็นตน้ ซ่งึ พฤตกิ รรมเฉพาะนี้สามารถนาไปใช้ในระบบอื่นๆได้ เช่น ระบบการให้บริการบัญชีเงินฝากของ ธนาคารที่มีความจาเป็นต้องบันทึกสถานท่ีอยู่สาหรับเข้าของบัญชี ดังน้ัน ท่ีอยู่ ซึ่งเป็นกลุ่มของข้อมูลและ มีพฤติกรรมท่ีออบเจ็กตอ์ ืน่ ๆสามารถนาไปเปน็ องคป์ ระกอบได้ ลกั ษณะของการท่ีออบเจ็กตห์ น่งึ ๆ ประกอบดว้ ยออบเจ็กต์อื่นๆ เช่น นักศกึ ษา ประกอบด้วย ทอ่ี ยู่ หรือ เครือ่ งคอมพิวเตอร์ ประกอบดว้ ย อปุ กรณ์ต่างๆ เราเรียกว่า Aggregation ซึ่งหมายถึงการที่ออบเจก็ ต์ หน่งึ เปน็ นส่วนประกอบของออบเจ็กต์หนึง่ ลกู ค้า อย่ทู ่ี ที่อยู่ รหัสบตั รประชาชน 1 1..* บา้ นเลขที่ ชอื่ ถนน ทอี่ ยู่ ตาบล อาเภอ เปดิ บญั ชีใหม่ ( ) จังหวัด ปดิ บัญชี ( ) รหสั ไปรษณยี ์ เปลยี่ นแปลงทีอ่ ยู่ ( ) ภาพที่ 1.9 แสดงแผนภาพความสมั พันธแ์ บบเป็นส่วนประกอบ (Aggregation) ในการพิจารณาวา่ ออบเจ็กตห์ นงึ่ ๆ มี Aggregation หรือไม่ จเะปติด้อง(พ)จิ ารณาวา่ มีคุณสมบัติใดทม่ี ี ลกั ษณะเป็นออบเจ็กต์ และท่ีออบเจ็กต์หน่ึง Aggregation อีกออบเจ็กปตดิ ห์ น( ึ่ง)น้นั หมายความว่า ออบเจ็กต์ทัง้ 2 มคี วามสมั พันธก์ ัน ดงั นน้ั อาจจะกว่างได้ว่า Aggregation เป็นลักษณละงหทนะ่ึงเบขียอนงค(ว)ามสมั พันธ์ Association นน่ั เอง 10

คาถามท้ายบท 1. จากสถานการณ์ต่อไปนี้ จงแยกแยะวา่ มี Objects อะไรบ้าง และ Functions ที่ Object แต่ละตวั ตอ้ งมีคอื อะไร - “นาย ง อา่ นหนงั สือการ์ตูนขายหวั เราะ” - “นาย ป ชวนนางสาว ข เตน้ รา” - “นาย ช ถอนเงินจากตู้ ATM ธนาคารทหารไทย” - “นาย ต เติมน้ามันให้กับรถยนต์ย่หี ้อ Nissan” 2. จงเขียนเครอื่ งหมาย  หน้าข้อท่ีถกู ต้อง และเขยี นเคร่ืองหมาย X หน้าข้อทผ่ี ดิ .........1.) ออบเจ็กต์คือสง่ิ ที่สามารถจบั ต้องได้และจบั ต้องไม่ได้ .........2.) ออบเจก็ ต์ประกอบด้วยคณุ สมบตั แิ ละพฤตกิ รรม .........3.) แอทริบิวส์ เปน็ คุณสมบตั ขิ องออบเจ็กต์ .........4.) ออบเจ็กต์ไมม่ ีพฤตกิ รรมกไ็ ด้ .........5.) การสืบทอดคุณสมบัติเป็นการนาคลาสใหม่มาปรับปรงุ หนังสอื อ้างอิง กติ ติ ภกั ดีวฒั นะกุล. (2009). การวิเคราะห์และออกแบบระบบเชิงวตั ถดุ ้วย UML. กติ ตพิ งษ์ กลมกลอ่ ม, & กติ ติ ภกั ดวี ฒั นะกุล. (2009). พน้ื ฐานการวิเคราะห์และออกแบบระบบเชิงวตั ถดุ ว้ ย UML. กรงุ เทพฯ: เคทีพ.ี ธวชั ชยั งามสนั ตวิ งศ์. (2549). การวเิ คราะหแ์ ละออกแบบระบบงานเชงิ วัตถุ. กรุงเทพฯ:21 เซ็นจูร.ี กติ ติ ภักดวี ฒั นะกลุ และ พนิดา พานิชกุล. (2548). คมั ภรี ์ การพฒั นาระบบเชิงวตั ถุดว้ ย UML และ JAVA. กรุงเทพฯ: เคทีพี คอมพ์ แอนด์ คอนซัลท์. ธรี วัฒน์ ประกอบผล และ สุนทรนิ วงศ์ศิริกุล. (2552). การพัฒนาโมเดลสาหรบั การเขยี นโปรแกรมเชงิ วัตถุ ดว้ ย UML 2.0. กรงุ เทพฯ :ซัคเซส มเี ดีย. อัษฎาพร ทรัพย์สมบรู ณ์. (2015). การวเิ คราะหแ์ ละออกแบบเชิงวตั ถุ. กรงุ เทพฯ: เคทีพี. Arlow, J. (2005). UML 2 and the unified process: practical object-oriented analysis and design (2nd ed.). Upper Saddle River, NJ: Addison-Wesley. Satzinger, J. W., Jackson, R. B., & Burd, S. D. (2011). Systems Analysis and Design in a Changing World, 6th Edition. Course Technology. 11


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook