Saturday 3 December 2016

بک لینک شاپ

کد خبر : 71049
تاریخ انتشار : سه شنبه 7 ژوئن 2016 - 11:34
0 views بازدید

آموزش برنامه نویسی جاوا: برنامه نویسی شی گرا , قسمت ۱

برنامه نویسی شی گرا آموزش برنامه نویسی جاوا: برنامه نویسی شی گرا , قسمت ۱ مقدمه:خب دوستان عزیز  در آموزش‌های قبلی ما تمام مفاهیم پایه‌ی جاوا، به جز مبحث آرایه‌ها را به طور کامل گفته‌ایم. از این جلسه به بعد (حدودا ۱۰ جلسه‌ی آموزشی) را ما به برنامه نویسی شی گرا اختصاص می‌دهیم. ما در این چند جلسه، مبحث شی گرایی را به طور کامل […]


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

آموزش برنامه نویسی جاوا: برنامه نویسی شی گرا , قسمت ۱

مقدمه:خب دوستان عزیز  در آموزش‌های قبلی ما تمام مفاهیم پایه‌ی جاوا، به جز مبحث آرایه‌ها را به طور کامل گفته‌ایم. از این جلسه به بعد (حدودا ۱۰ جلسه‌ی آموزشی) را ما به برنامه نویسی شی گرا اختصاص می‌دهیم. ما در این چند جلسه، مبحث شی گرایی را به طور کامل آموزش می‌دهیم. یعنی ابتدا یک مقدمه‌ای از تعریف شی گرایی را برای شما می‌گوییم و سپس به طور مفصل مباحثی مثل ارث بری (Inheritance)، چندریختی (Polymorphism)، اینترفیس یا واسط (Interface) و سایر مباحثی که به شی گرایی مربوط می‌شود را آموزش می‌دهیم.

شی گرایی یا Object Oriented چیست؟

در دنیا زبان‌های برنامه نویسی متفاوتی در دو سطح مختلف وجود دارد. سطح پایین و سطح بالا. هرچه سطح زبان برنامه نویسی بالاتر باشد، برنامه نویسی به آن زبان ساده‌تر است. زیرا به زبان محاوره‌ای انسان نزدیک‌تر است. به عبارت دیگر هرچه زبان برنامه نویسی سطح پایین‌تر باشد، برنامه نویس، کد‌های بیشتری باید بنویسد و باید با مفاهیم سخت افزاری بیشتر سر و کله بزند. برای درک بهتر این مسئله به تصویر زیر نگاه کنید:

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

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

اما این موضوعات چه ربطی به برنامه نویسی شی گرا دارد؟ نکته‌ای که وجود دارد و در بالا هم به آن اشاره شد این است که هرچه سطح زبان به سمت پایین برود، برنامه نویس باید اطلاعات سخت افزاری بیشتری داشته باشد و اینکه هنگام نوشتن برنامه، تفکری سخت افزاری داشته باشد! یعنی بجای اینکه در مورد راه حل‌های مسئله (طراحی نرم افزار) فکر کند، باید ذهن خود را درگیر مفاهیمی مانند سی پی یو، رم و … کند. حالا فرض کنید اگر روشی وجود داشته باشد که برنامه نویس بجای تفکر سخت افزاری، تفکری از یک دنیای واقعی داشته باشد. یعنی اگر قرار است برنامه‌ای را بنویسد، دقیقا همان چیز‌هایی که در واقعیت هستند را در قالب یک برنامه پیاده‌سازی کند.

در دنیای واقعی هر شی (به زبان انگلیسی: Object) سه خصوصیات متمایز دارد:

  1. وضعیت، ویژگی‌ها یا متعلقات (State)
  2. رفتار (Behavior)
  3. هویت (Identity)

اجازه دهید که این سه ویژگی را با یک مثال توضیح دهم:

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

کلاس چیست؟

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

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

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

چگونه در جاوا یک کلاس بسازیم؟

ساختن کلاس در جاوا بسیار راحت است و ما به هر اندازه‌ای که بخواهیم می‌توانیم کلاس ایجاد کنیم. در برنامه‌هایی که ما در این سری آموزشی می‌نویسیم، هرکدام شامل شاید حداکثر ۳ الی ۴ کلاس باشد. اما در پروژه‌های صنعتی ممکن است روی سیستم‌هایی کار کنید که شامل صد‌ها و حتی هزار‌ها کلاس باشند.
ابتدا محیط توسعه‌ی اکلیپس را اجرا و یک پروژه‌ی جاوایی ایجاد کنید، سپس بر روی پروژه کلیک راست کنید و از منوی New گزینه‌ی Class را انتخاب کنید. تصویر زیر:

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

بعد از طی کردن مراحل فوق، شما با یک پنجره همانند پنجره‌ی زیر مواجه می‌شود:

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

همانطور که در تصویر بالا با یک بیضی آبی رنگ مشخص شده است، نام کلاس خود را Main در نظر بگیرید و بعد در قسمت پایین پنجره که با یک مستطیل قرمز رنگ مشخص شده است، گزینه‌ی public static void main را تیک بزنید و بعد بر روی دکمه‌ی Finish کلیک کنید. (با تیک زدن گزینه‌ی مشخص شده، هنگام ساخته شدن کلاس، به صورت خودکار متد اصلی (main) کلاس که نقطه‌ی شروع هر برنامه‌ی جاوا است نوشته می‌شود). (بعد از ساخته شدن کلاس، توضیحات (Comment) اضافی را پاک کنید).

تا اینجای کار ما یک کلاس داریم و آن هم کلاس اصلی برنامه است. حالا می‌خواهیم یک کلاس دیگر ایجاد کنیم. پس بنابراین همانطور که توضیح داده شد اقدام به ساخت یک کلاس دیگر کنید. فقط نکته‌ای که باید رعایت کنید این است که این بار تیک گزینه‌ی public static void main را نزنید و نام کلاس را، GradeBook یعنی دفتر ثبت نمرات در نظر بگیرید.

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

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

لینک مطلب

منابع : ناموجود
نویسندگان : ناموجود
چه امتیازی می دهید؟
5 / 0
[ 0 رای ]

برچسب ها :

ناموجود
ارسال نظر شما
انتشار یافته : 0 در انتظار بررسی : 1
  • نظرات ارسال شده توسط شما، پس از تایید توسط مدیران سایت منتشر خواهد شد.
  • نظراتی که حاوی تهمت یا افترا باشد منتشر نخواهد شد.
  • نظراتی که به غیر از زبان فارسی یا غیر مرتبط با خبر باشد منتشر نخواهد شد.


تبليغات تبليغات تبليغات تبليغات