جدیدترین دوره آموزش برنامه نویسی جاوا به زبان فارسی – جلسه چهاردهمReviewed by صابر بوستانی on Oct 6Rating: 5.0جدیدترین دوره آموزش برنامه نویسی جاوا به زبان فارسی – جلسه چهاردهم
جدیدترین دوره آموزش برنامه نویسی جاوا به زبان فارسی – جلسه چهاردهم

جدیدترین دوره آموزش برنامه نویسی جاوا به زبان فارسی – جلسه چهاردهم

باسلام و عرض ادب. در این مطلب جدیدترین دوره آموزش برنامه نویسی جاوا به زبان فارسی – جلسه چهاردهم رو از وب سایت آموزش برنامه نویسی سورس باران جهت دانلود قرار داده ایم. در جلسه چهاردهم دوره آموزش جاوا با برنامه نویسی شی گرا در برنامه نویسی جاوا آشنا خواهید شد. سرفصل های این جلسه در ادامه مطلب ذکر شده و میتونید قبل از دانلود مشاهده نمایید…

جدیدترین دوره آموزش برنامه نویسی جاوا به زبان فارسی – جلسه چهاردهم

  • معرفی مفهوم برنامه نویسی شی گرا در جاوا
  • نحوه ایجاد کلاس در برنامه نویسی جاوا
  • ایجاد پکیج در جاوا و نحوه بسته بندی کلاس ها در بسته های مجزا
  • معرفی اجزا کلاس در برنامه نویسی جاوا
  • نمونه سازی از یک کلاس و استفاده از فیلدها و متدهای موجود در کلاس
  • مخفی کردن فیلدها و متدها از دید کلاس های بیرونی با ایجاد سطح دسترسی

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

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

جدیدترین دوره آموزش برنامه نویسی جاوا به زبان فارسی – جلسه چهاردهم

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

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

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

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

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

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

کلاس چیست؟

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

جدیدترین دوره آموزش برنامه نویسی جاوا به زبان فارسی – جلسه چهاردهم

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

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