برنامه نویسی شی گرا قسمت اول / Object Oriented Programming

در این پست می خواهم در مورد مبحث شی گرایی به صورت کامل توضیح دهم. برنامه نویسی شی گرا چیست؟ شی به چه معناست؟ چگونه می توان یک شی را ایجاد کرد؟ و…
استثنائا این آموزش بدون محدودیت در اختیار شما قرار می گیرد ولی قسمت دوم این آموزش فقط در صورتی قابل نمایش خواهد بود که در سایت ثبت نام کنید. البته ثبت نام در سایت بسیار ساده و سریع است.
این آموزش قسمتی از آموزش زبان جاوا ریلیز ۴ نوشته ی خودم است که ارائه نشده است. لطفا بعد از مطالعه ی این آموزش نظر دهید.

در این سبک از برنامه نویسی یعنی برنامه نویسی شی گرا اساس برنامه نویسی بر پایه ی کلاس ها و اشیاء است نه توابع
برای درک ‌بهتر این گونه در نظر بگیرید که در برنامه نویسی های رویه ای کلی ترین واحد اصلی برنامه نویسی تابع است، در حالی که در برنامه نویسی شی گرا کلی ترین واحد اصلی کلاس است. توابع یا همان متدها و متغیر ها در داخل کلاس تعریف می شوند.
بعد از این که کلاس را ایجاد کردیم(که ممکن است شامل متغیر، ثابت، متد و یا همه با هم و …) باشد، باید از کلاس یک نمونه ایجاد کنیم.
فرض کنید کلاس خودرو را ایجاد کرده ایم. برای این که بتوانیم از خودرو استفاده کنیم باید ابتدا یک یا حتی چند نمونه از آن خودرو برای خود ایجاد کنیم. به نمونه ی ایجاد شده از روی کلاس شی می گویند.
تمامی اعضای یک کلاس به نمونه های ایجاد شده از روی آن ها مقیدند. یعنی اگر از روی شی خودرو دو نمونه بسازیم و کلاس خودرو شامل ویژگی سرعت باشد، اشیاء ساخته شده می توانند سرعت های متفاوتی را در خود ذخیره کنند.
از آن جایی که یکی از زبان های معروف دنیا با نام جاوا شی گراست، کد مربوط به کلاس خودرو را به زبان جاوا مثال می زنیم.

class Machine
{
      int speed;
      float acceleration;
}

کلاس بالا ویژگی های یک خودرو(مثلا سرعت و شتاب) را تعریف می کند. حالا باید از روی این کلاس شی ایجاد کنیم. مثلا شیئی با نام aod:

Machine aod;
aod=new Machine();

در خط اول یک متغیر با نام aod از نوع کلاس Machine اعلان کرده ایم و در خط بعد یک نمونه از کلاس Machine را ایجاد و در aod ذخیره کرده ایم. الان ما یک شی از جنس خودرو و با نام aod داریم که ویژگی های سرعت و شتاب مختص به aod را می توانیم جداگانه مقدار دهی کنیم.

aod.speed=245;
aod. acceleration=5.3f;

حالا می توانیم چندین نمونه ی دیگر از کلاس خودرو ایجاد کنیم.
مثلا:

Machine bmw = new Machine();
bmw.speed=288;
bmw.acceleration=4.4f;

پس تا الان توانستیم یک کلاس با توصیف ویژگی آن شی در متغیر ها بسازیم. اما یک شی علاوه بر خصوصیات، رفتار هم از خود نشان می دهد.
مثلا فرض کنید از کلاس خودرو برای یک شی در حال حرکت استفاده کنیم که ویژگی های آن شی همان سرعت و شتاب آن است. ولی می خواهیم یک رفتار برای این شی تعریف کنیم و آن هم روشن و خاموش کردن چراغ خودرو است. همان طور که می دانید روشن و خاموش بودن چراغ خودرو هم می تواند یک متغیر باشد، ولی ما این طور در نظر می گیریم که برای روشن و خاموش کردن چراغ خودرو حتما باید یک کلید را فشار دهیم.(یعنی یک عمل انجام دهیم.) به همین خاطر ما مستقیما به سیستم چراغ های خودرو دسترسی نداریم بلکه غیر مستقیم و به کمک کلید(متد) به این عضو از کلاس خودرو دسترسی پیدا می کنیم و آن را روشن یا خاموش می کنیم.

class Machine
{
    int speed;
    float acceleration;
    private boolean lightSystem;
    void turnOnLights()
    {
        lightSystem =true;
    }
    void turnOffLights()
    {
        lightSystem = false;
    }
}

حالا مثلا در تابع main می خواهیم یک خودرو با نام bmw ایجاد کنیم و در طول برنامه چراغ آن را روشن کنیم.

Machine bmw = new Machine();
bmw.speed=288;
bmw.acceleration=4.4f;
bmw.turnOnLights();

اگر ما دو شی با نام های bmw و aod از نوع خودرو داشته باشیم، هرکدام سرعت و شتاب مختص به خود را دارند و با فراخوانی متد turnOnLights هر کدام از اشیاء ، فقط چراغ های آن خودرو روشن می شود. یعنی این متد مختص به شی است و هر شیئی از نوع خودرو کلید روشن کردن چراغش، چراغ های فقط همان خودرو را روشن می کند.

نویسنده: سینا مرادی

6 thoughts on “برنامه نویسی شی گرا قسمت اول / Object Oriented Programming

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

3 × 2 =