วันเสาร์ที่ 25 เมษายน พ.ศ. 2552

OOP in matlab

Object Oriented Programming หรือ เรียกย่อว่า OOP หมายถึง การเขียนโปรแกรมที่ประกอบด้วยกลุ่มของวัตถุ(Objects) แต่ละวัตถุจะจัดเป็นกลุ่มในรูปของคลาส ซึ่งแต่ละคลาสอาจมีคุณสมบัติ การปกป้อง (Encapsulation) การสืบทอด (Inheritance) การพ้องรูป (Polymorphism)


แนวคิดของการโปรแกรมเชิงวัตถุ (OOP Concepts)


1. การปกป้อง (Encapsulation)
- การรวมกลุ่มของข้อมูล และกลุ่มของโปรแกรม เพื่อการปกป้อง และเลือกตอบสนอง
2. การสืบทอด (Inheritance)
- ยอมให้นำไปใช้ หรือเขียนขึ้นมาทดแทนของเดิม
3. การพ้องรูป (Polymorphism) = Many Shapes
- Overloading มีชื่อโปรแกรมเดียวกัน แต่รายการตัวแปร (Parameter List) ต่างกัน - Overriding มีชื่อโปรแกรม และตัวแปรเหมือนกัน เพื่อเขียน behavior ขึ้นมาใหม่


กฎของ OOP (Object Oriented Programming)

อาลัน เคร์(Alan Kay) เป็นผู้บุกเบิกแนวความคิดการเขียนโปรแกรมเชิงวัตถุคนหนึ่ง และมีส่วนพัฒนา Small talk ได้เสนอกฎ 5 ข้อของ OOP ไว้ดังนี้
1. ทุกสิ่งเป็นวัตถุ (Everything is an object)
2. โปรแกรมคือกลุ่มของวัตถุที่ส่งข่าวสารบอกกันและกันให้ทำงาน (A program is a bunch of objects telling each other what to do by sending messages)
3. แต่ละวัตถุต้องมีหน่วยความจำ และประกอบด้วยวัตถุอื่น (Each object has its own memory made up of other objects)
4. วัตถุต้องจัดอยู่ในประเภทใดประเภทหนึ่ง (Every object has a type) 5. วัตถุประเภทเดียวกันย่อมได้รับข่าวสารเหมือนกัน (All objects of a particular type can receive the same messages)


โครงสร้างของ MATLAB Class


การเขียนโปรแกรม แบบ OOP ใน MATLAB นั้น ใช้ลักษณะของ OOP ในการออกแบบ โดยมีรูปแบบที่เฉพาะขึ้นอยู่กับลักษณะของภาษา ดังนี้
1. Method ทั้งหมดของ Class จะถูกเก็บไว้ที่ไฟล์ MATLAB function (นามสกุล .m)
2. Method ของ Class จะถูกเก็บอยู่ใน subdirectory ของ working directory เช่น method Fred จะเก็บที่ @Fred
3. ทุก Class จะต้องประกอบด้วย method ต่อไปนี้ อยู่ใน main directory
! The Constructor คือ method ที่มีชื่อเดียวกันกับ class ทำหน้าที่เก็บและกำหนดค่าเริ่มต้นให้กับ Class
!display.m คือ method ที่จะถูกเรียกใช้ เมื่อ MATLAB ต้องการจะแสดงเนื้อหาของ object
!char.m คือ method ที่จะคืนค่าข้อความบอกถึงลักษณะของ object
4. แต่ละ Method จะติดต่อ ร้องขอหรือส่งข้อมูลระหว่างกันต้องทำโดยผ่าน method get/set
การเขียนโปรแกรมโดยใช้ MATLAB มีความจำเป็นต้องเขียน function ขึ้นมาใหม่เพื่อให้เหมาะสมกับงานของเรา โปรแกรมที่เขียนโดย MATLAB จะ Save โดยใช้ extension เป็น " m " ซึ่งเรานิยมเรียกโปรแกรมที่เขียนโดยใช้ MATLAB ว่า M-file โดย M-file นี้จะแบ่งออกเป็น 2 ลักษณะคือเขียนในลักษณะของการบอกขั้นตอนหรือบอกบทการทำงานหรือที่นิยมเรียกว่า script file และอีกประเภทหนึ่งจะเขียนขึ้นในลักษณะของ function ซึ่งผู้ใช้สามารถรวบรวมเอา function ต่าง ๆ ของ MATLAB มารวมเข้าด้วยกันแล้วเขียนขึ้นเป็น function ใหม่ M-file ในลักษณะนี้เรียก function file


ตัวอย่างการใช้งาน MATLAB Class


ต่อไปจะยกตัวอย่างการเขียน OOP ด้วย MATLAB และขอยกตัวอย่างยอดนิยม คือการเขียน Class ของการเปิดบัญชีธนาคาร

1. สร้าง M file ใหม่ ขึ้นมา
File >> New >> M-File




2. สร้าง Class BankAccount โดยพิมพ์คำสั่ง ดังนี้

และบันทึกใน Directory ชื่อ @BankAccount โดยกำหนดชื่อไฟล์ เป็นชื่อเดียวกับ ชื่อ Directory ซึ่งก็คือชื่อ Class นั้นเอง


3. สร้าง Class อื่นๆ ประกอบดังต่อไปนี้

4. ปิดหน้าต่าง M-File และทดลองการทำงานดังนี้
นี่คือ การทดลองเขียน Class ด้วย MATLAB แบบง่ายๆ ซึ่งจะชี้ให้เห็นการทำงานแบบ OOP ของ MATLAB และควรจะฝึกเขียนโปรแกรมบ่อยๆ เพื่อให้เข้าใจและสร้าง Objects ได้ และแต่ละคลาสต้องมีคุณสมบัติ การปกป้อง (Encapsulation) การสืบทอด (Inheritance) การพ้องรูป (Polymorphism)



ไม่มีความคิดเห็น:

แสดงความคิดเห็น