ชีวิตในโลกของ Object - Oriented

posted on 15 Jul 2009 20:37 by bloodknife

คือเรื่องมีอยู่ว่า ผมเรียนวิชา Object - Oriented Concept แล้วเกิดข้อสงสัยตามมาเยอะมากๆ ทั้งถามอาจารย์ก็แล้ว เพื่อนก็แล้ว แต่มันก็ยังมีอะไรที่ค้างคาอยู่ดี ก็ไม่รู้จะทำไง จึงลองมองชีวิตประจำวันเปน Object - Oriented หรือ "OO" ดูนะครับว่าจะเป็นอย่างไรกัน

 

เริ่มจากผมตื่นนอน แน่นอนคนที่ดำเนินกิจกรรมก็คือ ตัวผมเอง ใช่ไหมครับ ตัวผมถือเป็น object หนึ่งแน่นอนครับ   แล้ว object ต้องมีคุณสมบัติประกอบไปด้วย สองส่วน คือ

1.สถานะ (State) ตอนนี้ผมมีหลายสถานะมากมาย ทั้งเป็นสิ่งมีชีวิต เป็นมนุษย์ เป็นนักศึกษา เป็นคนไทย เป็นคนบนโลก เป็นต้น  สมมติว่าผมก็จะมองชีวิตประจำวัน มองภาพรวมๆ ใหญ่ๆไว้ก่อน ก็คือ มนุษย์ ซึ่งต้องมี คุณลักษณะ (attibute) คือ ชื่อ วันเกิด ที่อยู่ อายุ ลักษณะใบหน้า สีผิว รูปร่างของร่างกาย

2.พฤติกรรม (ฺBehavier) การที่ผมสามารถทำอะไรได้บ้าง ซึ่งเรียกว่า การดำเนินการ (operation) คือ สามารถเคลื่อนที่ได้ สามารถกินได้ สามารถพูดคุยได้ สามารถคิดวิเคราะห์ได้

 

เอ่..... ที่ผมกล่าวมานี้ มันเป็นหลักการของ "OO" แน่หรือปล่าว ลองมาพิสูจน์กันดีกว่าครับ

 

คุณสมบัติของ Object ที่จะเป็น "OO" ได้ ต้องสามารถอธิบายทั้ง 4 ข้อข้างล่างนี้ได้ คือ

1. นามธรรมของวัตถุ (Abstaction) คือคำนิยามของต้นแบบวัตถุ เปนตัวกำหนดโครงสร้างว่าวัตถุที่จะเกิดจาก แม่แบบนี้มีคุณลักษณะ พฤติกรรมอะไรบ้าง

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

โดยการนำเอา abstaction นี้ไปสร้างให้เป็น object ( แต่บางครั้งจะเรียก object ว่าเป็น instance of abstract )
ข้อควรระวัง Abstaction ไม่เหมือน Abstact Class นะครับ

2.การห่อหุ้ม (Encapsulation) เมื่อเรามี abstaction แล้วการห่อหุ้มจะเป็นการรวบรวมเอาคุณสมบัติต่างๆของวัตถุ ได้แก่ คุณลักษณะ และพฤติกรรม มารวมกัน เพื่อกำหนดเป็นวัตถุนั้นๆ ซึ่งทำก็เพื่อการซ่อนคุณลักษณะหรือพฤติกรรมบางอย่างนั้นเอง ( แต่การห่อหุ้มมีผลทำให้วัตถุมีความพิเศษอื่นๆด้วย เช่น ความเป็นโมดูล และ การซ่อนเร้นข้อมูล )

สมมติว่าผมกำหนดให้ A เป็น object ของ มนุษย์ และ B เป็น object อื่นๆ
ถ้าเกิดว่า B อยากได้ ชื่อของ A ทำอย่างไรดีล่ะ?
B สามารถไปเอาชื่อ A มาดื้อๆได้หรือไม่ คำตอบคือ ไม่ได้ครับ
B จะต้องร้องขอผ่านพฤติกรรมการพูดคุยของ A จึงจะได้ชื่อของ A มา นี่ล่ะครับ !  การห่อหุ้ม

3.ความเป็นโมดูล (Modularity) เป็นการแตกจากสิ่งที่สลับซับซ้อน ให้เป็นส่วนประกอบที่สามารถจัดการได้ เช่นผมเป็น object มนุษย์ มันมีความสลับซับซ้อนในแง่ของเพศ จึงได้แบ่งมนุษย์ออกมาเป็น 2 เพศ คือ เพศหญิง เพศชาย

4.ลำดับชั้นของวัตถุ (Hierarchy)
เป็นการนำวัตถุจัดเป็นกลุ่ม และสร้างลำดับความสัมพันธ์ เช่น
ผมเป็น object มนุษย์ ซึ่งมันจะเกิดจาก object สิ่งมีชีวิต อีกทีหนึ่ง ( โดยปกติจะเรียก class สิ่งมีชีวิตได้ว่าเป็น abstact class เพราะเป็น class ที่ยังไม่พร้อมจะสร้าง object )

สิ่งมีชีวิต  ------ > มนุษย์

 

จะเหนว่า object ของผมซึ่งก็คือ มนุษย์ สามารถอธิบายคุณสมบัติของ "OO" ได้หมดเลยครับ
ไม่น่าเชื่อนะนี่ !!!

สรุปแล้ว หลักการของ "OO" มีแค่นี้เองเหรอ ทุกอย่างบนโลกล้วนสามารถอธิบายด้วยหลักการของ "OO" ได้หรือไม่ ถ้าไม่ได้จะอธิบายหลักการอะไรให้มันล่ะ (ง่า ..... อยากรู้จังเลย)

ติดตามชมตอนต่อไปครับ ^_^  


ปล. การอธิบายข้างต้นนี้ เกิดจากแนวคิดของผมที่เข้าใจในเนื้อหาของวิชาแบบนี้ แล้วนำมาเรียบเรียงในการอธิบาย ซึ่งอาจจะมีเนื้อหาไม่เหมือนกับคนอื่นบ้าง ช่วยแนะนำด้วยนะครับ

edit @ 15 Jul 2009 20:50:22 by PopJ

Comment

Comment:

Tweet

อ่าาาาาา


โอยยยยยยย
วิชาเรียน เห็นแล้ว ปวดลูกตาembarrassed embarrassed นี่นายพูดเรื่องไรน่ะ ไม่เหมือนไม่เคยได้ยินเลย

เอิ๊กๆๆๆๆๆ
sad smile

#9 By ~h/i\k-a_t[o]m[o]~[Z!=nE]- -* on 2009-08-05 17:38

อ่านแล้วงงดีฮับ

55555

#8 By (58.137.15.211) on 2009-07-21 00:19

เชดดด

ปอบแม่งเมพพพ

อิอิ

#7 By ~DoppLer PlaThoNg~ on 2009-07-20 00:47

บล็อกข้าก็เป็น Object ตัวนึง เองช่วยไปใช้เมธอด คอมเม้นให้ด้วยนะคิคิ

#6 By GolfKung on 2009-07-18 22:24

มันไม่มีทางเลือกแล้วแหละ

ต้อง เร็ว ๆ นี้ เท่านั้น

โปรดติดตามๆ confused smile

#5 By PopJ on 2009-07-16 20:29

อืมมม...

ติวกันเมื่อไหร่ดี

ฮ่าๆๆๆๆๆๆๆๆๆ

#4 By i'm hellcat on 2009-07-16 01:55

น้องรหัสน่าร๊ากกจัง ขอบคุณที่ชมน้า อิอิ

ปล. ใช้แล้วละ ปีหน้าๆเตรียมตัว ฮ่าๆ

#3 By PopJ on 2009-07-15 21:47

โอโอ...โอ๊ยยยยยยยยยยยยย!!!
จะตายกับโอโอ เบื่อชิบบบบ tongue

ง่วงนอนด้วยยยยยยย!!!

อ่านก็ไม่เข้าใจ!!
ลาออกแม่งเลย

#2 By babimild16 on 2009-07-15 21:45

พี่รหัสเมพ กิ๊สสส.. เข้าใจเอามาเปรียบเทียบ ^^

อิอิ



ปล.นี่เป็นเรื่องที่เค้าต้องเรียนปีหน้าหรอเนี่ย โฮกกกก =[]=

#1 By miniskirt on 2009-07-15 21:12