วันพุธที่ ๒๘ พฤศจิกายน พ.ศ. ๒๕๕๐

OO Concept ข้างตำรา

คลาสเมื่อวาน 27 พ.ย. 50 บรรยายเป็นครั้งที่ 4 เรื่อง Interaction Diagram (Sequence & Comunication Digaram) ทำให้นึกย้อนกลับไปถึงบรรยายครั้งที่ผ่าน ๆ มา เริ่มจากครั้งที่ 1 เป็นการแนะนำนำให้รู้จักคุณสมบัติของแนวคิด (กระบวนการคิด) ของ Object-Oriented อะไรคือ Class อะไรคือ Instance มันนิยามต่างกันอย่างไร แต่ที่แน่ ๆ คือ Object จะมีคุณสมบัติอยู่ 3 ข้อใหญ่ ๆ

1.Encapsulation คือ ทำงานได้เบ็ดเสร็จ คือ พูดง่ายลองนึกถึงตัวเรา มีข้อมูล (Attribute) และ เราก็รู้จักจัดการกับข้อมูลของเราด้วยวิธีการ (Method) ของเรา คนอื่นแค่บอกมาว่า อยากได้อะไร หรือ ต้องรู้ว่าเราทำอะไรให้ได้บ้าง สรุปคือ แค่บอกมา (ส่ง message มาตาม public channel) เดี๋ยวจัดให้ (เรื่องของ I You ไม่เกี่ยว จัดการอย่างไร ขอเป็น Private นะ) เห็นม๊ะ แสดงว่ามันต้องมีคนอื่น (Class อื่นๆ) ต้องรู้จักเราด้วย เพราะจะมาใช้ หรือมารู้จักนี่หละ มันก็เกิดเป็นความสัมพันธ์ (Relationship) ไง พอมันสัมพันธ์กันเยอะ เริ่มกิ๊กกันเยอะ ก็ต้องไปเขียน Class Diagram จะได้รู้ว่ากิ๊กไหน รู้จักกันบ้าง ทางไหน อย่างไร จะได้ไม่งง อ้าวก่อนจะออกนอกเรื่อง (นอกแคปซูล) ...ไปไกล ขอหยุดก่อนนะ

Generalization Abstraction
(Superclass-Class-Subclass)

2. Inheritance คือ กรรมพันธุ์ ทั้งที่เป็น Physical เช่น อะไรที่ common มันก็จะสืบทอดมาด้วย (ก็พวก Attibute ที่มันมีเหมือนกันไง) รวมถึง Logical อันนี้ดูที่นิสัย (Method) หรือเรียกง่ายๆ ว่า สืบทั้งคุณลักษณะ และสันดานแล้วกันครับ คือ เหมือนเรานี่หละครับ เอกเทศ เป็นตัวเราเอง ที่เรียกว่า Encapsulation แล้วยังไม่พอ เขาพยายามจะบอกว่า บางทีเราก็มี ลักษณะรูปร่าง และสันดาน ที่เป็นกรรมพันธุ์ ที่ยัดเยียดมาให้ ติดมาจาก พ่อ และแม่ของเรา งงหละซิ ... เช่น พ่อ แม่ เป็น นก นกมีลักษณะนิยาม คือ มีปีก 2 ข้าง มีขา 2 ขา มีหางด้วยนะ ส่งเสียงร้องได้ และบินได้ ลูกนก ออกมาอาจจะ สีดำ สีขาว หางยาว หางสั้น หางกุด ร้องเพราะ ร้องไม่เพราะ ไอ้ ดำ ๆ ขาว ๆ ยาวๆ สั้น ๆ เพราะ ไม่เพราะ ที่บอกมามันคือ Value นะ แต่มันก็คือ ลักษณะ (Attributes) เดียวกันเหมือน พ่อ และแม่ของมัน ใช่ไหม จะนกเอี้ยง นกอีเห็น นกกระจอก (Instance) จะแบ่งไปสักกี่ร้อยสายพันธุ์ มันก็ มีปีก 2 ข้าง มีขา 2 ขา มีหางด้วยนะ ส่งเสียงร้องได้ และบินได้ เราเรียกรวมไม่รู้หละไอ้แบบนี้ นก หมด (Class นก) จะเป็นหมาได้อย่างไร
เหมารวม เรียกลักษณะเหมารวมที่นิยาม ๆ ว่า Class ไง

อันนี้มันแล้วแต่นิยามของ คลาส ถ้าบอกว่า สิ่งที่บินได้ (มีปีกสองข้าง ลอยตัวในอากาศได้) ก็อาจจะแยกเป็น สิ่งมีชีวิตที่บินได้ กับ สิ่งไม่มีชีวิตที่บินได้ เห็นม๊ะ เห็นม๊ะ แค่นึกยังนึกว่า บินได้ บินได้ แสดงว่า มันก็สืบสันดานของที่บินได้มา นก ก็จะกลายเป็นคลาสลูก (Sub Class) ของสิ่งที่บินได้ที่มีชีวิต ทันที เครื่องบิน ก็จะกลายเป็น Sub Class ของสิ่งไม่มีชีวิตที่บินได้ แต่มันบินได้เห็นปะ ... การคิดแบบนี้มันทำให้เกิดการ Reuse หรือ ทำให้ไม่ต้องคิดอะไรซ้ำ ๆ ก็ใช้สิ่งที่มีอยู่แล้วให้เกิดประโยชน์

3. Polymorphism เขายังมองลึกซึ้งต่อไปว่า คนเราอะนะ หรือลูก ๆ ที่พ่อแม่เดียวกันนี่หละ สืบสันดานมาจากพ่อแม่ก็จริงอยู่ แสดงพฤติกรรม (Behavior หรือ Method) ได้เหมือนกันก็จริงอยู่ แต่ลองไปดูกระบวนการ (Process) ดิ มันต่างกัน เช่น สิ่งที่บินได้แบบมีชีวิต เวลาบิน (Method บิน) มัน กางปีกสองข้างขยับขึ้น ขยับลง = บิน แต่ ถ้าแบบไม่มีชีวิต เวลาบิน มันกางปีกก่อน แล้ววิ่งไปข้างหน้า เชิดหัวขึ้น = บิน เห็นม๊ะ เห็นม๊ะ บินได้ แต่ว่าขอแอบต่างนิดส์นึง ถ้าเครื่องบินปีกขยับขึ้น ขยับลง เอออันนี้ไม่ต้องคิดอะไร ท่องนะโม 3 จบ ลุ้นกันอีกทีตอนถึงพื้น

จากข้อ 1 สรุปว่า มองตัวเรา ข้อ 2 และ 3 สรุปว่ามองที่ครอบครัวของเรา

พอเรามองแบบนี้ปุ๊ป เอาข้อ 1 ก่อน อยู่คนเดียวได้เหรอ? ถ้าเป็นสิ่งเดียวที่ไม่ต้องยุ่งกะใคร คำตอบคือ แล้วจะไปสนใจมันทำไมให้ปวดหัวคร๊าบบพี่น้อง .. ไอ้เพราะว่าอยู่โดด ๆ ไม่ได้นี่หละครับ มันเลยทำให้เรามีวิชาชีพทำมาหากินทุกวันนี่หละ เอ้ามาดูกัน อยู่คนเดียวไม่ได้ ก็ต้องไปมีความสัมพันธ์ กับ คนอื่น จริงม๊ะ (Relationship ระหว่าง Class เรียกหรู ๆ ว่า Association) ตามธรรมเนียมลากเส้นไปเชื่อมกันซะ แล้วก็บอกว่า สัมพันธภาพระหว่างเรา นะแบบไหน จะมาหลายทีไม่จำกัด (*) หรือว่ามาทีเดียว (1) หรือว่ามาได้จำกัดจำนวนครั้งไม่เกิน 30 ครั้งตามใจ (0..30) หรือไม่รับปากว่าจะมา แต่ถ้ามาขออนุญาตมาหลาย ๆ ที (0..*) ยังไงก็มาแน่ ๆ ที่รัก แล้วจะมาอีกหลาย ๆ ที (1..*) ก็ว่ากันไป เราเรียกการเขียนพวกนี้ว่า Carinality หรือ Multiplicity อ่อ จะใช้ n แทน * ก็ได้ไม่ผิด


มาข้อ 2 ข้อ 3 ความสัมพันธ์กันแบบ ครอบครัวของเรา ของกันและกัน ยกทีมมา อุตส่าห์ทำตัวเทา ๆ ไว้ก่อน ที่เป็น Generalization ก็จะเป็นความสัมพันธ์จากนิยามคุณสมบัติของ Object ในข้อ Inheritance และ Polymorphism ไง ความเป็นเครือญาติ เหล่า ก๊ก กอ แก๊งค์ พวกเดียวกันนี่หละ มันก็จะมีความสัมพันธ์กันแบบใกล้ชิดสนิทแนบ เราเรียกมันว่า Composite หรือ Aggregation ซึ่งจะเกิดจากความสัมพ้นธ์ที่เป็นส่วนหนึ่งของกันและกัน ฉันขาดเธอมิได้ ประมาณนี้ ภาษาอังกฤษเรียกว่า "is-part-of" "is-kind-of" ต้องมาประกอบเข้าด้วยกัน เวลาเขียนเส้นความสัมพันธ์ ก็บอกให้รู้ด้วยสัญลักษณ์ สี่เหลี่ยมข้าวหลามตัดไว้ตรงหัว ถ้าแบบเหนียวแน่นมาก ๆ ก็ทำทึบ ๆ (Composite) ถ้าแบบธรรมดาก็ไม่ต้องไประบายทึบ (Aggregation) ส่วนใหญ่หัวเหลี่ยมจะไปแปะไว้กับคลาสหลัก นึกถึงดอกกุหลาบ มีก้าน มีดอก ดอกคือเหลี่ยม ๆ นั่นหละครับ เวลาที่ยื่นดอกกุหลาบให้แฟน แล้วบอกว่า ขอเป็นส่วนหนึ่งของชีวิตคุณ คงไม่เอาก้านดอกกุหลาบ ชี้ไปที่แฟนหรอกนะครับ เหอๆๆ


จำไว้อย่างว่า "เมื่อ instance ไหน เป็น Subclass ของ Class ใดแล้ว ก็ต้องจงรักภักดี กับหัวหน้า Super Class นั้นตลอดไป ห้ามกระโดดไปมา" ... เช่น นก ถึงจะบินได้ ก็ห้ามไปสังกัด สิ่งไม่มีชีวิตที่บินได้ มันเย้ยหยัน เสียมารยาท เสียการปกครอง

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

Object
ฉันก็มีชีวิตเลือดเนื้อ (Attribute) จิตใจ (Method) และความสัมพันธ์ (Association)

วันจันทร์ที่ ๒๖ พฤศจิกายน พ.ศ. ๒๕๕๐

เว็บบอร์ด BSD2EX มาแว้ว ...



หลังจากที่เสียงหัวเราะ อย่างครึกครื้นได้กลับคืนมายัง BSD2EX ในวันลอยกระทง (24 พ.ย.) และได้คัดเลือกนางนพมาศ ประจำปี 50 น้องกิ๊ป รองน้องญิ๋ง และขวัญใจช่างภาพน้องเจิน จากผลการโหวตกันไปเป็นที่เรียบร้อยแล้ว คนที่ไม่ได้รับตำแหน่งไม่ต้องเสียใจ เพราะความสวย มีพอๆ กัน แต่ความ ซว... ที่เพื่อน ๆ ในห้องมอบให้มีไม่เท่ากัน ฮา ...


เข้าเรื่องกันครับ มีหนุ่มสุดหล่อใจดี ไม่ประสงค์ออกนาม นาย ก. นามสมมติ กลุ่ม 3 ได้มาคุยกะเฮีย แล้ว offer ว่าที่กลุ่ม ได้ทดลองเปิด web board ไว้คุยงานกัน แล้วเห็นว่าน่าจะมีประโยชน์กับเพื่อน ๆ ในรุ่น เรื่องดี ๆ บอกเฮียมา ก็จัดส่งมอบต่อให้รุ่นครับ อ่อ ... ไปหาและขอบคุณกันเองหละกันคร๊าบ คงไม่ยากเกินกว่า Assignment หรอกนะครับ

สุดหล่อเขาแบ่ง เว็บบอร์ดแบ่งไว้ให้ตามกลุ่ม 6 กลุ่มนะครับ แต่ว่า สามารถแสดงความคิดเห็นได้ทุกกระทู้ ทั้งนี้เพื่อความสะดวกในการนัดแนะ แต่ว่าเราไปแสดงความคิดเห็นที่กลุ่มไหนก็ได้

แล้วจะล็อกอินยังไง?
ก็จัดการสร้าง Username และ password ให้ทุกคนแล้ว โดย username เป็น รหัสนิสิต ส่วนรหัสผ่าน เป็นวันเกิด และเดือนเกิด (ddmm) 4 ตัว (ไม่มีปี คงเข้าใจนะ...) การล็อกอินต้องเลือกกลุ่มให้ถูกต้องด้วยนะครับ ตย. รหัสนิสิต 508-12345-26 อยู่กลุ่ม 6 เกิดวันที่ 6 เดือน กันยายน ใส่ข้อมูลตามนี้



Username: 5081234526
Group: 6
Password: 0609


หมายเหตุ

Group1 กลุ่มเบิร์ด, Group 2 กลุ่มท่านก็อป, Group3 กลุ่มศักดิ์, Group4 กลุ่มตัน, Group5 กลุ่มเม้ง, Group6 กลุ่มเฮีย


ถ้ามีปัญหารหัสนิสิตผิด แจ้งมาที่เฮียครับ แต่ถ้าจำวันเกิดไม่ได้ เอ่อ... อันนี้...ดูที่บัตรประชาชน หรือสำเนาทะเบียนบ้านครับ


แล้วต้องไปที่เว็บไหน?

นี่เลย .... http://www.bsd2ex.com/2007/board หรือ ดูจากใน Blog ตรงส่วน Web Board คร๊าบ


ชื่นใจจริง ๆ เฟ้ย ...จบข่าว

วันพุธที่ ๒๑ พฤศจิกายน พ.ศ. ๒๕๕๐

จุฬาฯ ติดอันดับ 37 ม.ดีของเอเซีย 527 ม.ดีของโลก

CONTINENT RANK
UNIVERSITY
COUNTRY
WORLD RANK





































































































เก็บมาฝากจาก http://www.webometrics.info/top100_continent.asp?cont=asia
เชื่ออะไรไม่ค่อยได้เท่าไหร่ เอาไว้ดูขำ ๆ

ความรู้อยู่ที่ตัวบุคคล สถาบันคือความภูมิใจ
จุฬาฯติด Top 50 ของ Asia ตลอดกาล ข้อมูล ณ เดือนกรกฎาคม 2007 ครับ แต่ไม่มีความหมายอะไรถ้าเราจบไปแล้วไม่มีความรู้อะไร ไม่เป็นทั้งคนเก่ง และคนดี ก็ไม่ได้ทำให้สถาบันน่าภูมิใจ และยังเป็นการลดเกียรติแห่งสถาบันและเพื่อนร่วมสถาบัน