چهارشنبه, ۱۲ اردیبهشت, ۱۴۰۳ / 1 May, 2024
مجله ویستا

برنامه نویسی شی ء گرا و جاوا


برنامه نویسی شی ء گرا و جاوا
(Object Oriented Programming – OOP) یکی از بزرگترین ایده های برنامه نویسی در دو دهه اخیر است که نیاز به تسلط کامل دارد .
● مفاهیم برنامه نویسی شی ء گرا :
برنامه نویسی شی ء گرا قصد دارد مدلی از دنیای واقعی را وارد برنامه نویسی کامپیوتر کند دنیای اطراف ما از اشیاء ساخته شده است .
▪ اشیاء (Objects) و کلاسها (Classes) :
شیی ء کلیدی ترین مفهوم برنامه نویسی شی گرا است هر شی ء یک حالت و رفتار دارد و برنامه عبارت است از بر هم کنش بین اشیاء . حالت یک شی ء عبارت است از متغییرهای عناصر داده ای شییء و مقدار آنها . رفتار یک شی ء را متدهای آن تعیین می کند . شیء در واقع مقداری کد است که کار خاصیتی انجام می دهد .
هر شیء کپسولی است از مقداری متغییر و کد که کار نگهداری و به روز در آوردن آنها را ساده می کند . معمولاً درون یک شیء از دسترس دنیای خارج به دور است و برای کار با آن باید از ارسال پیام استفاده کرد . مزیتش آن است که کاربر برای کار با آن هیچ نیازی به دانستن مکانیزم های درونی آن ندارد و فقط باید ساختار پیام ها را بداند . معمولاً ساختار پیام ها در اشیاء مختلف یکسان است . در دنیای واقعی هم وضع به همین منوال است مثلاً برای استفاده از یک تلویزیون شما هیچ نیازی به آشنایی با پیچیدگیهای درون آن ندارید فقط کافی است بدانید که باید آن را به برق زده و روشن کنید و یک کانال را انتخاب کنید . کلاس در واقع الگویی است برای ایجاد شیء . در واسط برنامه نویسی جاوا (java API) چندین کلاس مختلف وجود دارد .
چندین کلاس با هم یک کتابخانه کلاس Class Library می سازند .
برنامه نویسی جاوا اصولاً چیزی نیست جز طراحی و پیاده سازی کلاس ها .
● ایجاد یک کلاس
در این قسمت یک مثال عملی خواهیم آورد . در این مثال یک موتور سیکلت را شبیه سازی می کنیم . یک موتور سیکلت واقعی دارای حالت و رفتار خاص خود است . حالت موتور سیکلت در واقع همان خواص آن ( مانند رنگ ، مدل ، نوع و ... ) است . مجموع این خواص یک موتور سیکلت خاص را مشخص خواهند کرد که از موتور سیکلت های دیگر قابل تمیز است . هر شیء وهله ایست از یک کلاس . کلاس موجودی قابل لمس نیست ، در حالیکه شیء موجودی است قابل لمس که به کلاس خود موجودیت داده است . مثلاً ، انسان یک کلاس است در حالیکه شما نمونه ای هستید از کلاس انسان ، شما موجودیت دارید در حالیکه چیزی بنام انسان وجود خارجی ندارد، بلکه در اشیاء خاص ( من ، شما ، دیگران ) موجودیت می یابد .
موتور سیکلت ما دارای رفتارهایی هم هست ، رفتارهایی مانند روشن شدن ، خاموش شدن ، تعویض دنده ، سرعت گرفتن ، ترمز کردن و غیره . ادیتور خود را اجرا کنید و کلاس موتور سیکلت را مانند ذیل تعریف کنید :
البته این کلاس هنوز کار چندانی انجام نمی دهد ( در واقع هیچ کاری انجام نمی دهد !)
اجازه دهید کارمان را با تعریف چند متغییر حالت ادامه دهیم ، این تعریف ها را بعد از { وارد کنید :
نکته :
بر خلاف C ، متغییرهای Boolean فقط مقادیر True یا False می گیرند و نمی توانند عدد بگیرند .
حال چند رفتار (متد ) به این کلاس اضافه می کنیم .
گفتیم که یک موتور سیکلت می تواند رفتارهای متعددی داشته باشد ولی ما در اینجا برای سادگی کار فقط متد روشن شدن موتور را پیاده سازی خواهیم کرد .
کد ذیل را بعد از تعریف متغییرهای حالت اضافه کنید :
این متد ابتدا تست می کند که آیا موتور روشن است (engineState= =True) ، اگر چنین باشد فقط با پیامی این موضوع را گوشزد می کند . اگر موتور روشن نباشد، آن را روشن کرده و پیام می دهد که کارش را به پایان رسانده است .
کلاس را با نام Motorcycle.java ذخیره کنید . این کلاس تا اینجا باید چنین باشد :
قبل از کامپایل کردن این کلاس ، اجازه دهید یک متد دیگر به آن اضافه کنیم .
این متد ShowArts ، مقدار فعلی متغییرهای حالت یک وهله خاص از این کلاس را نمایش خواهند داد . این متد چنین است :
این متد دو خط اطلاعات روی صفحه نمایش خواهد داد .
خط اول رنگ و نوع موتور سیکلت ، و خط دوم حالت موتور آن را نمایش می دهد .
فایل را ذخیره کرده و سپس آن را با javac کامپایل کنید :
▪ Javac Motorcycle.java
اگر سعی شود این کلاس را با اینترپرتر جاوا اجرا کنید ، با خطا مواجه خواهید شد چون اینترپرتر دنبال متدی بنام main() می گردد و چون آن را نمی یابد پیام خطای ذیل را نمایش خواهد داد :
In class Motorcycle:void mail (string args[])is not defined
برای آنکه این کلاس را عملیاتی کنیم باید یک برنامه جاوا بنویسیم و در آن از این کلاس استفاده کنیم .
اما روش ساده تر آن است که به این کلاس یک متد main() اضافه کنیم . لیست زیر این متد را نشان می دهد .
با اضافه کردن این متد ، کلاس Motorcycle اکنون یک برنامه است و می توان آنرا کامپایل و اجرا کرد . خروجی برنامه شبیه ذیل خواهد بود :
● تحلیل برنامه
چیزهایی که در متد ()main می بینید خط ۱ تعریف متد main() است و شما آن را همواره به همین شکل خواهید دید . در خط ۲ یک شیء از کلاس Motorcycle بنام m تعریف شده است . توجه کنید که با کلاس ها به طور منظم کاری صورت نمی گیرد بلکه یک وهله از آنها ( یک شیء ) مورد استفاده قرار می گیرد . در خطهای ۳ و ۴ متغییرهای حالت این شییء ست می شوند : Yamaha RZ۳۵۰ و رنگ زرد . در خط های ۵ و ۶ متد ShowArts() فراخوانی می شود ( در حقیقت فقط خط ۶ فراخوانی این متد است و خط ۵ فقط پیامی است مبنی بر فراخوان آن ) . این متد نوع ، رنگ و روشن یا خاموش بودن شییء موتور سیکلت را نمایش خواهد داد . توجه کنید که در ابتدا موتور خاموش است .
خط ۷ یک خط رسم می کند که قسمتهای مختلف خروجی را از هم جدا می کند و فقط برای شکیل تر شدن برنامه است . در خط ۹ با فراخوانی متد startEngine موتور روشن می شود . خط ۱۲ دوباره متد showArts() را فراخوانی کرده و مقدار متغییرهای حالت را نمایش می دهد . در این لحظه موتور روشن است .
خط ۱۵ سعی می کند که موتور را دوباره روشن کند ، ولی موتور قبلاً روشن شده است و پیام داده شده هم موید همین مطلب است .
منبع : استاد آن‌لاین


همچنین مشاهده کنید