top of page

แนวคิดของเอลัน เคย์ (Alan Kay)

             เป็นผู้หนึ่งที่พัฒนาภาษา small Talk ซึ่งเป็นต้นแบบของการเขียนโปรแกรมเชิงวัตถุ ได้ให้นิยามของภาษาเชิงวัตถุไว้ดังนี้ทุกๆ สิ่งเป็นวัตถุโปรแกรม คือ กลุ่มของวัตถุที่ส่งสารบอกกันเพื่อทำงานวัตถุแต่ละวัตถุมีหน่วยความจำวัตถุต้องมีชนิดวัตถุที่จัดอยู่ในประเภทเดียวกันย่อมได้รับข่าวสารเหมือนกัน

 

ทุกๆ สิ่งเป็นวัตถุ

              องค์ประกอบของโปรแกรมคอมพิวเตอร์ทุกๆ ส่วนจะต้องเป็นวัตถุซึ่งกฎข้อนี้เองที่ทำให้ล่ามแปลภาษาส่วนมากรวมทั้งภาษาจาวา (JAVA) ด้วย ไม่เป็นภาษาเชิงวัตถุแบบบริสุทธิ์เพราะในล่ามแปลภาษา (JAVA) ยังมีบางส่วนที่ไม่เป็นวัตถุ เช่น การกำหนดตัวแปร เป็นต้นโปรแกรมคือกลุ่มของวัตถุโปรแกรมในความหมายของการเขียนโปรแกรมเชิงวัตถุ คือ กลุ่มของวัตถุที่ส่งข้อความข่าวสาร(Message) ถึงกันและกันเพื่อบอกให้วัตถุทำงานวัตถุมีหน่วยความจำวัตถุในความหมายของการเขียนโปรแกรมเชิงวัตถุ จะต้องมีหน่วยความจำของตัวเอง คือ ส่วนที่เก็บข้อมูลส่วนของวัตถุนั้นๆ เองซึ่งเรียกว่า attributeส่วนของข้อมูลนี้อาจจะประกอบขึ้นจากวัตถุอื่นๆ ได้เป็นที่มาของการเกิดคุณสมบัติการถ่ายทอดและคุณสมบัติขององค์ประกอบคอมโพสิตวัตถุมีหน่วยความจำหน่วยความจำคอมพิวเตอร์วัตถุจะต้องจัดอยู่ในกลุ่มหรือชนิดชนิดของวัตถุ คือ คลาส (Class)ในการเขียนโปรแกรมเชิงวัตถุจะต้องเขียนคลาสขึ้นมาก่อนเสมอ แล้วจึงจะสร้างวัตถุจากคลาส ดังนั้นวัตถุจึงจะต้องอยู่ในคลาสใดคลาสหนึ่งวัตถุจะต้องจัดอยู่ในกลุ่มหรือชนิดดังนั้น คลาส เปรียบเหมือน แม่พิมพ์ ส่วนวัตถุ คือ สิ่งที่เกิดจากแม่พิมพ์ วัตถุที่เกิดจากคลาสเดียวกันจึงมีคุณสมบัติพื้นฐานเหมือนกันวัตถุชนิดเดียวกันย่อมได้ข่าวสารเหมือนกันวัตถุที่อยู่ในประเภทเดียวกันย่อมได้ข่าวสารเหมือนกัน คุณสมบัติข้อนี้ทำให้การเขียนโปรแกรมเชิงวัตถุมีประสิทธิภาพเพิ่มขึ้นเพราะชนิดของวัตถุมิได้กำหนดหรืออยู่อย่างโดดๆ แต่สามารถจัดเป็นกลุ่มผู้เขียนคำสั่งสามารถกำหนดชนิดย่อย ๆ ของวัตถุได้อีก เช่นคลาส คือ shape สามารถแตกออกเป็นชนิดที่จำเพาะลงไปเป็น Circle, Triangle, Rectangle เป็นต้นดังนั้น เมื่อวัตถุในคลาส Circle สามารถได้รับข่าวสารเหมือนกับ Triangle และ Rectangleวัตถุชนิดเดียวกันย่อมได้ข่าวสารเหมือนกันคุณสมบัติของภาษาการโปรแกรมเชิงวัตถุคุณสมบัติของภาษาที่เป็นการโปรแกรมเชิงวัตถุควรมีคุณสมบัติพื้นฐานดังต่อไปนี้ Encapsulation (การห่อหุ้มวัตถุ) Data Hiding (การซ่อนรายละเอียด) Inheritance (การสืบทอด) Polymorphism (การพ้องรูป)Encapsulation (การห่อหุ้มวัตถุ)คือ การรวมคุณลักษณะของวัตถุและพฤติกรรมของวัตถุเข้าไว้ด้วยกัน โดยกำหนดให้เป็นลักษณะชนิดของวัตถุนั้นๆ Data Hiding (การซ่อนรายละเอียด)คือ การกำหนดระดับในการเข้าถึงข้อมูล เพื่อป้องกันการเข้ามาใช้ข้อมูลของวัตถุโดยสิ่งอื่นที่ไม่เกี่ยวข้องแล้วทำให้เกิดการผิดเพี้ยนของการทำงานทั้งระบบ ดังนั้นข้อมูลบางอย่างไม่ยินยอมให้วัตถุอื่นใดมาใช้งานได้ จำเป็นต้องซ่อนรายละเอียดตรงจุดนี้เอาไว้ เพื่อให้เกิดความปลอดภัยของวัตถุและระบบโดยรวมให้มากที่สุด Inheritance (การสืบทอด)เป็นการขยายลักษณะพิเศษหรือความสามารถของชนิดวัตถุใหม่จากชนิดวัตถุพื้นฐานให้มีลักษณะของเดิมและเพิ่มเติมสิ่งใหม่ๆ เข้าไปด้วยCompositionคุณสมบัติของ Inheritance ทำให้การโปรแกรมเชิงวัตถุมีข้อดี คือ สามารถสร้างงานต่างๆ ได้เร็วเพราะสามารถนำของเก่ามาใช้งานใหม่ได้ เรียกว่า “Reused”แต่ก็ยังมีลักษณะอีกอย่างที่ช่วยให้เกิด “Reused” ได้เช่นกัน คือ Composition คือ การสร้างวัตถุใดๆ ด้วยการประกอบจากวัตถุอื่น Polymorphism (การพ้องรูป)เป็นคุณสมบัติที่ชนิดของวัตถุที่เกิดจากชนิดของวัตถุแม่เดียวกันสามารถมีความสามารถเหมือนแม่แต่ผลลัพธ์การดำเนินงานไม่เหมือน คือ มีลักษณะเฉพาะตัว ตัวอย่างเช่นมารู้จักคลาสและวัตถุกันคลาสเป็นเหมือนส่วนของแม่พิมพ์ เพื่อบอกลักษณะว่าวัตถุในคลาสนี้มีลักษณะและพฤติกรรมเป็นอย่างไรวัตถุเป็นสิ่งที่ถูกสร้างขึ้นมาจากคลาสเพื่อใช้งาน กำหนดค่าต่างๆ ส่งข้อความสั่งให้วัตถุทำงานมารู้จักคลาสและวัตถุกัน

โปรแกรมคือกลุ่มของวัตถุ

 -โปรแกรมในความหมายของการเขียนโปรแกรมเชิงวัตถุ คือ กลุ่มของวัตถุที่ส่งข้อความข่าวสาร(Message) ถึงกันและกันเพื่อบอกให้       วัตถุทำงาน

วัตถุมีหน่วยความจำ

-วัตถุในความหมายของการเขียนโปรแกรมเชิงวัตถุ จะต้องมีหน่วยความจำของตัวเอง คือ ส่วนที่เก็บข้อมูลส่วนของวัตถุนั้นๆ เองซึ่งเรียกว่า attribute

-ส่วนของข้อมูลนี้อาจจะประกอบขึ้นจากวัตถุอื่นๆ ได้

-เป็นที่มาของการเกิดคุณสมบัติการถ่ายทอดและคุณสมบัติขององค์ประกอบคอมโพสิต

หน่วยความจำคอมพิวเตอร์

DISK

CPU

RAM

ROM

bottom of page