مثال دوم، نمونه ای از برنامه نویسی شی گرا در زبان برنامه نویسی OTcl می باشد.

این مثال بسیار ساده است اما چگونگی ایجاد و استفاده از یک شی در زبان برنامه نویسی OTcl را نشان می دهد.

نکته : در این مجموعه آموزش NS2، نرم افزار NS2 در سطوح مقدماتی و متوسط آموزش داده می شود.

این مجموعه خودآموز آنلاین آموزش NS2 به مرور تکمیل می شود و استفاده از آن برای استفاده فردی رایگان است.

برای آموزش NS2 به صورت مستقیم و یا حضوری و همچنین آموزش NS2 در سطح پیشرفته با ما تماس بگیرید.

 احتمال نوشتن یک شی جدید توسط شما بعنوان یک کاربر معمولی و عادی نرم افزار NS2 ، خیلی کم خواهد بود.

باوجود این، از آنجایی که تمام اشیا در نرم افزار NS2 که در یک شبیه سازی شبکه از آن ها استفاده خواهید نمود اساسا اشیا زبان برنامه نویسی OTcl می باشند، درک ساختار شی در زبان برنامه نویسی OTcl سودمند خواهد بود.

چه این اشیا توسط زبان برنامه نویسی C++ نوشته شده و به اسکریپت OTcl پیوند خورده باشند، و چه فقط در زبان برنامه نویسی OTcl ایجاد شده باشند.

 
# Create a class called "mom" and 
# add a member function called "greet"
Class mom
mom instproc greet {} {
    $self instvar age_
    puts "$age_ years old mom say: How are you doing?"
}
 
# Create a child class of "mom" called "kid" 
# and overide the member function "greet"
Class kid -superclass mom
kid instproc greet {} {
    $self instvar age_
    puts "$age_ years old kid say:
    What's up, dude?"
}
 
# Create a mom and a kid objects and set age of each one
set a [new mom]
$a set age_ 45
set b [new kid]
$b set age_ 15
 
# Calling member function "greet" of each object
$a greet
$b greet
 

یک اسکریپت OTcl

در این مثال یک اسکریپت OTcl نوشته شده که دو کلاس «mom» و «kid» را تعریف می کند؛

در اینجا، کلاس «kid» فرزند کلاس «mom» بوده (در واقع کلاس «kid» از کلاس «mom» مشتق شده است) و یک تابع عضوی کلاس به نام «greet» نیز برای هر کلاس وجود دارد.

پس از تعریف کلاس، دو شی نمونه تعریف شده، مقدار متغیر «age» برای شی a از کلاس mom برابر 45 و برای شی b‌ از کلاس kid برابر 15 قرار داده شده، و.تابع عضوی «greet» هر شی فراخوانی شده است.

کلمه کلیدی Class، برای ایجاد یک کلاس و کلمه کلیدی instproc برای تعریف یک تابع عضوی برای یک کلاس می باشد.

برای برقراری رابطه توارث بین کلاس ها از کلمه کلیدی superclass استفاده می شود.

در هنگام تعریف توابع عضوی، کلمه $self همانند کلمه کلیدی this در زبان برنامه نویسی C++ عمل می کند،

و کلمه کلیدی instvar بررسی می کند که آیا نام متغیر ذکر شده پس از آن، قبلا در همان کلاس یا کلاس های پدر (کلاس هایی که این کلاس از آنها مشتق شده است) تعریف شده است یا خیر.

اگر این متغیر قبلا تعریف شده باشد، همان متغیر ارجاع داده می‌شود (به شیوه مشابه متغیر های رفرنس در زبان برنامه نویسی C++)، در غیر اینصورت، متغیر جدیدی تعریف می گردد.

در نهایت، همانطور که در مثال بیان شده است، برای ایجاد یک شی نمونه از کلمه کلیدی new استفاده می شود. دانلود ex-otcl.tcl و اجرای دستور ns ex-otcl.tcl، نتایج زیر را در پی خواهد شد

 
45 years old mom say: How are you doing?
15 years old kid say:
   What's up, dude?
 

دیدگاه‌ها  

+1 #1 neda 1395-01-29 10:55
خیلی خوب
نقل قول کردن

نوشتن دیدگاه


 

آموزش های گام به گام

آموزش زبان برنامه نویسی Tcl

آموزش نرم افزار SUMO برای شبیه سازی ترافیک شهری

چهارمین کارگاه ارتباطات و نظریه اطلاعات برگزار می شود

چهارمین کارگاه ارتباطات و نظریه اطلاعات
چهارمین کارگاه ارتباطات و نظریه اطلاعات

ادامه مطلب...

مسابقه حل مسائل مهندسی شیمی به کمک کامپیوتر دانشگاه صنعتی شریف

مسابقه حل مسائل مهندسی شیمی به کمک کامپیوتر دانشگاه صنعتی شریف
مسابقه حل مسائل مهندسی شیمی به کمک کامپیوتر دانشگاه صنعتی شریف

ادامه مطلب...

سمینار خانه های هوشمند برای دوران پیری

سمینار خانه های هوشمند برای دوران پیری

ادامه مطلب...

سمینار پردازش زبان طبیعی

سمینار پردازش زبان طبیعی
سمینار پردازش زبان طبیعی

ادامه مطلب...