برنامه نویسسی شی گرا در متلب با ذکر مثال
::: در حال بارگیری لطفا صبر کنید :::
برنامه نویسسی شی گرا در متلب با ذکر مثال
www.rozex.rozblog.com
نام کاربری : پسورد : یا عضویت | رمز عبور را فراموش کردم

صفحه اصلیبررسی و آموزش نرم افزار متلب MATLABبرنامه نویسسی شی گرا در متلب با ذکر مثال

تعداد بازدید : 2091
نویسنده پیام
pirooz92 آفلاین
مدیر انجمن

ارسال‌ها : 10
عضويت : 10 /2 /1393
سن : 25
برنامه نویسسی شی گرا در متلب با ذکر مثال

تعریف یک کلاس (class)، با دستور classdef در متلب :
همان طور که می دانید، در برنامه نویسی شیء گرا (object oriented programming)، با تعریف کلاس ها (classes) و سپس ساخت شیء (object) از آن کلاس ها، سر و کار داریم. نرم افزار متلب، خود دارای تعدادی کلاس (class) آماده است که می توانیم از آنها استفاده کرده و شیء های (objects) مورد نظر خود را بسازیم، اما برای مواقعی که فرد قصد دارد، خود یک کلاس جدید تعریف کند نیز دستور classdef در متلب، در نظر گرفته شده است.
شکل کلی استفاده از دستور classdef در متلب، به صورت زیر می باشد :
classdef classname

properties

PropName

end

methods

methodName

end

events

EventName

end

enumeration

EnumName (arg)

end

end

کد بالا، باید درون یک m-file با همان نام انتخاب شده برای کلاس (در اینجا، نام classname)، نوشته شده و ذخیره شود. بنابراین، مثلا برای کد بالا، باید این کد، درون فایلی با نام classname ذخیره شود (این کد، شکل کلی تعریف کلاس را نشان می دهد، نه اینکه کدهای واقعی یک کلاس باشد).
کدها با دستور classdef شروع شده و با یک end ، تمام می شوند. بعد از دستور classdef ، نام مورد نظرمان برای کلاس (class) را می نویسیم که در کد بالا، نام classname انتخاب شده است.
در قسمت properties ، اطلاعاتی که کلاس، شامل آنها می باشد را تعریف می کنیم.
روش های (methods) یک کلاس، عملیات هایی (operations) هستند که توسط آنها می توانیم با شیء های ساخته شده از آن کلاس، کار کنیم. ما این عملیات ها را به صورت توابع (functions) مختلف برای آن کلاس، تعریف می کنیم. اگر قبلا با نحوه تعریف تابع در متلب آشنا شده اید، باید بگویم که این بخش از کدهای تعریف کلاس، شامل کدهایی مشابه کدهای ساخت تابع در متلب می باشد.
در قسمت events ، پیام هایی (messages) را تعریف می کنیم که هنگام رخ دادن برخی عمل های خاص، نمایش داده می شوند.
برای عدم گیج شدن، فعلا کاری به بقیه بخش های کلاس نداریم و یک مثال ساده که در آن، تنها روش ها (methods) به کار رفته اند را ذکر می کنیم :
مثال :
قصد داریم یک کلاس با نام my_class بسازیم که دارای یک روش (method) با نام say_hello باشد و عملکرد این روش به این صورت باشد که عبارت hello را در خروجی چاپ کند. برای این منظور، در یک m-file با نام my_class ، کدهای زیر را می نویسیم :
classdef my_class

methods

function say_hello(obj)

disp(\'hello\');

end

end

end

بنابراین با نوشتن کدهای فوق درون فایل my_class.m ، کلاسی با نام my_class تعریف کرده ایم و این قابلیت را به وجود آورده ایم که شیء های مورد نظرمان را از این کلاس بسازیم (مسیر حاوی فایل my_class.m ، باید جزء مسیرهای تعریف شده برای متلب باشد تا متلب بتواند این فایل را بیابد).
با ساخت یک کلاس (class)، عملا هیچ کدی را اجرا نکرده ایم و زمانی یک سری کد، در متلب اجرا خواهد شد که از آن کلاس، یک شیء (object) بسازیم. اکنون فرض کنید که بخواهیم از کلاس my_class ، یک شیء با نام A بسازیم. برای این منظور، کد زیر را می نویسیم :
clear all

close all

clc

A=my_class;

سه خط اول کدها، برای عدم تداخل کد فعلی، با برنامه های قبلی اجرا شده در متلب می باشد.
چون شیء A از روی کلاس my_class ساخته شده، بنابراین تمامی روش های تعریف شده در کلاس my_class را در خود دارد. بنابراین شیء A دارای یک روش با نام say_hello می باشد. برای اینکه بخواهیم روش say_hello برای شیء A اجرا گردد، باید کد زیر را بنویسیم :
A.say_hello
همان طور که مشاهده می کنید، ابتدا باید نام شیء (object) نوشته شود، سپس یک علامت نقطه (.) و بعد از آن، نام روش (method) مورد نظر ذکر گردد.
نتیجه :
hello
بنابراین با اجرا شدن روش say_hello برای شیء A ، کلمه hello در خروجی چاپ شده است.


چهارشنبه 10 اردیبهشت 1393 - 14:56
ارسال پیام نقل قول تشکر گزارش

تمامي حقوق محفوظ است . طراح قالبــــ : روزیکســــ