تبیان، دستیار زندگی
جاوا طراحی شد تا نوشتن برنامه ها، کامپایل کردن و اشکل زدایی آنها اسان باشد. از آن جایی که زبان جاوا پس از زبان C++ که یک زبان شی گراست طراحی شد، بسیاری از ساختارهای شی گرای مشابه با آن زبان استفاده می کند.
عکس نویسنده
عکس نویسنده
بازدید :
زمان تقریبی مطالعه :

جاوا در خدمت برنامه نویسی شی گرا


جاوا طراحی شد تا نوشتن برنامه ها، کامپایل کردن و اشکل زدایی آنها اسان باشد. از آن جایی که زبان جاوا پس از زبان++Cکه یک زبان شی گراست طراحی شد، بسیاری از ساختارهای شی گرای مشابه با آن زبان استفاده می کند. حتی نحو (Syntax) آن نیز نزدیک به++C است. به همین دلیل، افرادی که با ++C آشنایی داشته باشند به راحتی می توانند جاوا را بیاموزند.

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

گرچه جاوا را راحت تر از زبان های دیگر می توان آموخت، اما جاوا برای کسانی که هیچ آشنایی با برنامه نویسی ندارند، کمی دشوار است.

جاوا در خدمت برنامه نویسی شی گرا

دو سبک برنامه نویسی کلی وجود دارد. یکی سبک برنامه نویسی رویه ای و دیگری سبک برنامه نویسی شی گرا. در سبک برنامه نویسی رویه ای (Procedural)، برنامه نویس با استفاده از دانش خود از زبان برنامه نویسی، محل هایی از حافظه را برای ذخیره مقادیر انتخاب می کند و سپس دنباله ای از عملیات را می نویسد که آن مقادیر را دستکاری می کنند. محل های حافظه کامپیوتر را متغیر می نامند، زیرا حاوی مقادیری اند که احتمالا تغییر می کنند. به عنوان مثال برنامه ی حقوق و دستمزد یک موسسه ممکن است متغییر به نام salary داشته باشد که در زمان های مختلف، مقادیر مختلفی را می پذیرد. در حین اجرای برنامه حقوق و دستمزد، ممکن است عملیاتی بر روی هر مقداری که در salary ذخیره شده است، انجام گیرد، مثل خواندن مقداری از دستگاه ورودی، کم شدن مالیات و بیمه از این مقدار و چاپ آن در دستگاه خروجی. برای سهولت، هر عملیاتی که در برنامه کامپیوتری مورد استفاده قرار می گیرد، در واحدهای منطقی به نام رویه ها (procedure) دسته بندی می شوند. مثلا در مثال ذکر شده، مجموعه ای از 4 تا 5 مقایسه و محاسبات که مالیات حقوق و دستمزد را محاسبه می کند، به نام رویه CalculateTax خوانده می شود. برنامه رویه ای، محل های حافظه متغیر را تعریف می کند و سپس مجموعه ای از رویه ها را برای ورودی دستگاه، دستکاری،  و خروج مقادیر ذخیره شده در آن محل ها را فراخوانی می کند. یک برنامه رویه ای اغلب شامل صدها متغیر و هزاران فراخوانی رویه است.

برنامه نویسی شی گرا توسعه ای از برنامه نویسی رویه ای است که در آن، روش نوشتن برنامه های کامپیوتری متفاوت است

در تفکر شی گرایی، قطعات برنامه به عنوان اشیایی مثل اشیای دنیای واقعی در نظر گرفته می شوند. سپس برای رسیدن به یک نتیجه مطلوب، اشیا دستکاری می شوند. نوشتن برنامه های شی گرا شامل ایجاد اشیا و ایجاد برنامه های کاربردی جهت استفاده از آن اشیا است.

اگر از سیستم عامل دستوری مثل MS-DOS استفاده کرده باشید و تفاوت آن را با ویندوز دیده باشید به تفاوت برنامه نویسی رویه ای و شی گرا پی می برید. برای کپی کردن فایل ها در MS-DOS باید دستورات کپی کردن را تایپ کنید ولی در ویندوز این کار را با ماوس انجام می دهید. فایل ها را می توانید در محیط ویندوز به صورت یک شی از یک محل به محل دیگر کپی کنید. همان طور که در دنیای واقعی شی را از یک نقطه به نقطه دیگر حرکت می دهید.

جاوا در خدمت برنامه نویسی شی گرا

اشیای موجود در برنامه نویسی شی گرا همانند اشیای موجود در دنیای واقعی دارای صفات (attributes) و رفتارهایی (behavior) هستند. یک اتومبیل را در نظر بگیرید. اتومبیل دارای صفاتی مانند مدل، رنگ، قیمت، دنده، سرعت و غیره است. تمام اتومبیل ها صفات یکسانی دارند ولی مقادیر آنها متفاوت است. بنابراین اتومبیل ها تشکیل یک کلاس (class) را می دهند که مثلا اتومبیل پراید نمونه ای از ان کلاس است. این تفکر موجب می شود که دانش خود را در مورد یک کلاس، در مورد هر یک از نمونه های آن کلاس به کار گیریم. هر نمونه ای (instance) از یک کلاس، صفات خود را از کلاس به ارث (inherit) می برد. اگر یکی از دوستان شما اتومبیلی بخرد، می دانید که آن اتومبیل دارای مدل، رنگ، قیمت، دنده، سرعت و غیره است.

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

جاوا در خدمت برنامه نویسی شی گرا

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

برای برنامه نویسی در جاوا، برای کلاس هایی برای مدل سازی اشیای دنیای خارج ایجاد کنیم. برای این منظور باید صفات و متدهای آن را تعیین کرده، متدها را برای دستکاری صفات آنها بنویسیم. اما می دانید صفات کلاس ها همان متغیرهایی هستند که باید بر روی آنها عملیاتی صورت گیرد. خلاصه اینکه همه چیز در برنامه جاوا، جزیی از یک کلاس است. در واقع کلاس یک قالب است که اشیا از ان ساخته می شوند.

فاطمه مجدآبادی

بخش دانش و زندگی تبیان