برنامه نویسی و ITجاوا

آموزش شی گرایی در جاوا به زبان ساده + مثال عملی

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

شی گرایی در جاوا چیست؟

شی گرایی در جاوا چیست؟ برنامه‌نویسی شیءگرا (Object-Oriented Programming – OOP) نوعی پارادایم برنامه‌نویسی محسوب می‌شود که بر اساس مفهوم اشیاء بنا شده است. در این رویکرد، ما دنیای واقعی را به اجزای کوچک‌تر به نام شیء (Object) تقسیم می‌کنیم. هر شیء ویژگی‌های خاص خودش (صفات یا Attribute) را دارد و می‌تواند کارهای خاصی را انجام دهد (رفتار یا Method).

کاملترین مرجع آموزش جاوا در ایران + اعطای گواهینامه تخصصی

 

برگردیم به مثال ماشین‌مان. ویژگی‌های این ماشین می‌توانند شامل رنگ، سرعت، مدل و غیره باشند. رفتارهای آن نیز می‌تواند شامل حرکت کردن، ترمز کردن، بوق زدن و غیره باشد.

چرا شی گرایی در جاوا مهم است؟

برنامه‌نویسی شیءگرا مزایای متعددی نسبت به رویکردهای سنتی دارد. بیایید ببینیم این مزایا چه هستند:

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

چرا شی گرایی در جاوا مهم است؟

اجزای اصلی شی در جاوا

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

  • صفت (Attribute): همان ویژگی‌های یک شیء هستند. در مثال ماشین، رنگ، سرعت و مدل، صفات آن هستند.
  • رفتار (Method): کارهایی هستند که یک شیء می‌تواند انجام دهد. در مثال ماشین، حرکت کردن، ترمز کردن و بوق زدن، رفتارهای آن هستند.
  • سازنده (Constructor): یک متد خاص است که در زمان ایجاد یک شیء فراخوانی می‌شود و مقادیر اولیه را به صفات آن اختصاص می‌دهد.
  • دسترس‌پذیری (Access Modifiers): کلمات کلیدی‌ای هستند که مشخص می‌کنند چه قسمت‌هایی از یک شیء از بخش‌های دیگر برنامه قابل دسترسی باشند.

کلاس‌ها در جاوا: الگوی ساخت اشیاء

تا به اینجا با مفهوم شیء آشنا شدیم. اما چگونه می‌توانیم اشیاء را در برنامه خود بسازیم؟ اینجاست که کلاس‌ها (Class) به کمک ما می‌آیند. یک کلاس، درواقع یک الگو یا قالب است که مشخص می‌کند یک شیء چه ویژگی‌هایی دارد و چه کارهایی می‌تواند انجام دهد. به عبارت دیگر، کلاس نقشه ساخت اشیاء و مبنای شی گرایی در جاوا است.

آموزش برنامه‌نویسی جاوا: حل مسائل با نرم‌افزار

 

برای مثال، می‌توانیم یک کلاس به نام «ماشین» تعریف کنیم که ویژگی‌هایی مانند رنگ، سرعت و مدل را داشته باشد و همچنین متدهایی برای حرکت کردن، ترمز کردن و بوق زدن داشته باشد. سپس با استفاده از این کلاس، می‌توانیم چندین شیء ماشین با رنگ‌ها و مدل‌های مختلف بسازیم.

وارثت در شی گرایی جاوا

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

فرض کنید می‌خواهید دو کلاس جدید به نام «کامیون» و «اتوبوس» بسازید که هر دو از کلاس «ماشین» ارث می‌برند. هر دوی این کلاس‌ها می‌توانند از ویژگی‌ها و رفتارهای کلاس «ماشین» مانند رنگ، سرعت و مدل استفاده کنند. اما در عین حال، می‌توانند ویژگی‌ها و رفتارهای خاص خود را نیز داشته باشند. مثلا، کلاس «کامیون» می‌تواند ظرفیت بار و کلاس «اتوبوس» می‌تواند تعداد صندلی را داشته باشد.

مزایای وراثت:

  • استفاده مجدد از کد: با استفاده از وراثت ، نیازی به نوشتن دوباره کد برای ویژگی‌ها و رفتارهای مشترک کلاس‌ها نیست. این موضوع باعث می‌شود کد شما خواناتر، قابل فهم‌تر و کارآمدتر شود.
  • ایجاد سلسله مراتب: با استفاده از وراثت ، می‌توانید سلسله مراتبی از کلاس‌ها ایجاد کنید که در آن کلاس‌های بالاتر، ویژگی‌ها و رفتارهای کلی‌تر را تعریف می‌کنند و کلاس‌های پایین‌تر، جزئیات بیشتری را اضافه می‌کنند.
  • تخصصی‌سازی: وراثت به شما این امکان را می‌دهد تا کلاس‌های پایه را به کلاس‌های تخصصی‌تر با ویژگی‌ها و رفتارهای خاص تبدیل کنید.

رابط‌ها در جاوا: تعریف رفتارهای مشترک

در کنار وراثت در شێ گرایی در جاوا، رابط‌ها (Interface) نیز ابزاری قدرتمند برای سازماندهی برنامه‌های شیءگرا هستند. رابط‌ها مجموعه‌ای از متدها را تعریف می‌کنند که یک کلاس باید آن‌ها را پیاده‌سازی کند. با استفاده از رابط‌ها، می‌توانید نوعی قرارداد بین کلاس‌ها ایجاد کنید و مطمئن شوید که همه آن‌ها از متدهای مشخصی پشتیبانی می‌کنند.

رابط‌ها در جاوا

فرض کنید می‌خواهید یک رابط به نام «قابل رانندگی» (Drivable) تعریف کنید که متدی به نام driveدارد. این متد نحوه رانندگی یک وسیله نقلیه را مشخص می‌کند. سپس می‌توانید کلاس‌های «ماشین»، «کامیون» و «اتوبوس» را طوری پیاده‌سازی کنید که رابط «قابل رانندگی» را پیاده‌سازی کنند.

مزایای رابط‌ها:

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

آموزش شی گرایی در جاوا با یک مثال عملی

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

آموزش اسپرینگ بوت در عمل (با رویکرد blocking)

 

1. تعریف کلاس:

ابتدا یک کلاس به نام مستطیل (Rectangle) تعریف می‌کنیم. این کلاس شامل ویژگی‌ها و رفتارهای مربوط به یک مستطیل خواهد بود.

<span class="token keyword">class</span> مستطیل <span class="token punctuation">{</span>

<span class="token comment">// صفات (ویژگی ها)</span>

<span class="token keyword">private</span> <span class="token keyword">double</span> طول<span class="token punctuation">;</span>

<span class="token keyword">private</span> <span class="token keyword">double</span> عرض<span class="token punctuation">;</span>

<span class="token comment">// سازنده (Constructor)</span>

<span class="token keyword">public</span> مستطیل<span class="token punctuation">(</span><span class="token keyword">double</span> طول<span class="token punctuation">,</span> <span class="token keyword">double</span> عرض<span class="token punctuation">)</span> <span class="token punctuation">{</span>

<span class="token keyword">this</span><span class="token punctuation">.</span>طول <span class="token operator">=</span> طول<span class="token punctuation">;</span>

<span class="token keyword">this</span><span class="token punctuation">.</span>عرض <span class="token operator">=</span> عرض<span class="token punctuation">;</span>

<span class="token punctuation">}</span>

<span class="token comment">// رفتار (متد) برای محاسبه مساحت</span>

<span class="token keyword">public</span> <span class="token keyword">double</span> محاسبه_مساحت<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>

<span class="token keyword">return</span> طول <span class="token operator">*</span> عرض<span class="token punctuation">;</span>

<span class="token punctuation">}</span>

<span class="token comment">// رفتار (متد) برای محاسبه محیط</span>

<span class="token keyword">public</span> <span class="token keyword">double</span> محاسبه_محیط<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>

<span class="token keyword">return</span> <span class="token number">2</span> <span class="token operator">*</span> <span class="token punctuation">(</span>طول <span class="token operator">+</span> عرض<span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token punctuation">}</span>

<span class="token punctuation">}</span>

2. ایجاد اشیاء:

در ادامه، می‌توانیم اشیاء مختلفی از نوع مستطیل با طول و عرض‌های مختلف ایجاد کنیم.

<span class="token comment">// ایجاد دو شیء مستطیل</span>

مستطیل مستطیل<span class="token number">1</span> <span class="token operator">=</span> <span class="token keyword">new</span> مستطیل<span class="token punctuation">(</span><span class="token number">5</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

مستطیل مستطیل<span class="token number">2</span> <span class="token operator">=</span> <span class="token keyword">new</span> مستطیل<span class="token punctuation">(</span><span class="token number">10</span><span class="token punctuation">,</span> <span class="token number">7</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

3. استفاده از رفتارها:

حالا می‌توانیم از متدهای محاسبه_مساحت و محاسبه_محیط برای محاسبه مساحت و محیط هر مستطیل استفاده کنیم.

<span class="token comment">// محاسبه مساحت و محیط مستطیل1</span>

<span class="token keyword">double</span> مساحت_مستطیل<span class="token number">1</span> <span class="token operator">=</span> مستطیل<span class="token number">1.</span>محاسبه_مساحت<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token keyword">double</span> محیط_مستطیل<span class="token number">1</span> <span class="token operator">=</span> مستطیل<span class="token number">1.</span>محاسبه_محیط<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"مساحت مستطیل 1: "</span> <span class="token operator">+</span> مساحت_مستطیل<span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"محیط مستطیل 1: "</span> <span class="token operator">+</span> محیط_مستطیل<span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token comment">// محاسبه مساحت و محیط مستطیل2</span>

<span class="token keyword">double</span> مساحت_مستطیل<span class="token number">2</span> <span class="token operator">=</span> مستطیل<span class="token number">2.</span>محاسبه_مساحت<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

ouble محیط_مستطیل<span class="token number">2</span> <span class="token operator">=</span> مستطیل<span class="token number">2.</span>محاسبه_محیط<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"مساحت مستطیل 2: "</span> <span class="token operator">+</span> مساحت_مستطیل<span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"محیط مستطیل 2: "</span> <span class="token operator">+</span> محیط_مستطیل<span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

خروجی برنامه:

مساحت مستطیل 1: 15.0
محیط مستطیل <span class="token number">1</span><span class="token operator">:</span> <span class="token number">16.0</span>

مساحت مستطیل <span class="token number">2</span><span class="token operator">:</span> <span class="token number">70.0</span>

محیط مستطیل <span class="token number">2</span><span class="token operator">:</span> <span class="token number">34.0</span>

توضیح:

در این مثال، ما با مفاهیم پایه شی گرایی در جاوا مانند کلاس، شیء، صفت، سازنده، متد و نحوه استفاده از آن‌ها آشنا شدیم.

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

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

نکات:

  • در این مثال، از دو متد محاسبه_مساحت و محاسبه_محیط برای محاسبه مساحت و محیط مستطیل استفاده کردیم. شما می‌توانید متدهای دیگری را نیز به کلاس مستطیل اضافه کنید.
  • برای دسترسی به صفات خصوصی یک کلاس، باید از متدهای getter و setter استفاده کنید.
  • می‌توانید از مفاهیم توارث و رابط برای ایجاد روابط بین کلاس‌ها و پیاده‌سازی رفتارهای مشترک استفاده کنید.

مثالی دیگر از شی گرایی در جاوا

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

1. مدل‌سازی:

فرض کنید که فروشگاه ما کتاب‌هایی با ژانرهای مختلف (مانند داستان، علمی، آموزشی و …) را به فروش می‌رساند. هر کتاب دارای ویژگی‌هایی مانند عنوان، نویسنده، قیمت، تعداد موجودی و ژانر است.

2. تعریف کلاس‌ها:

  • کلاس کتاب: این کلاس شامل صفات و رفتارهای مشترک همه کتاب‌ها خواهد بود.
<span class="token keyword">class</span> کتاب <span class="token punctuation">{</span>

<span class="token comment">// صفات</span>

<span class="token keyword">private</span> <span class="token class-name">String</span> عنوان<span class="token punctuation">;</span>

<span class="token keyword">private</span> <span class="token class-name">String</span> نویسنده<span class="token punctuation">;</span>

<span class="token keyword">private</span> <span class="token keyword">double</span> قیمت<span class="token punctuation">;</span>

<span class="token keyword">private</span> <span class="token keyword">int</span> موجودی<span class="token punctuation">;</span>

<span class="token keyword">private</span> <span class="token class-name">String</span> ژانر<span class="token punctuation">;</span>

<span class="token comment">// سازنده</span>

<span class="token keyword">public</span> کتاب<span class="token punctuation">(</span><span class="token class-name">String</span> عنوان<span class="token punctuation">,</span> <span class="token class-name">String</span> نویسنده<span class="token punctuation">,</span> <span class="token keyword">double</span> قیمت<span class="token punctuation">,</span> <span class="token keyword">int</span> موجودی<span class="token punctuation">,</span> <span class="token class-name">String</span> ژانر<span class="token punctuation">)</span> <span class="token punctuation">{</span>

<span class="token keyword">this</span><span class="token punctuation">.</span>عنوان <span class="token operator">=</span> عنوان<span class="token punctuation">;</span>

<span class="token keyword">this</span><span class="token punctuation">.</span>نویسنده <span class="token operator">=</span> نویسنده<span class="token punctuation">;</span>

<span class="token keyword">this</span><span class="token punctuation">.</span>قیمت <span class="token operator">=</span> قیمت<span class="token punctuation">;</span>

<span class="token keyword">this</span><span class="token punctuation">.</span>موجودی <span class="token operator">=</span> موجودی<span class="token punctuation">;</span>

<span class="token keyword">this</span><span class="token punctuation">.</span>ژانر <span class="token operator">=</span> ژانر<span class="token punctuation">;</span>

<span class="token punctuation">}</span>

<span class="token comment">// رفتارها</span>

<span class="token comment">// ... (متدهای get و set برای صفات، متدهایی برای فروش و ...)</span>

<span class="token punctuation">}</span>
  • کلاس‌های مشتق‌شده: می‌توانیم کلاس‌های مشتق‌شده‌ای از کلاس کتاب برای ژانرهای مختلف، مانند کتاب_داستان، کتاب_علمی و کتاب_آموزشی ایجاد کنیم. هر کلاس مشتق‌شده می‌تواند صفات و رفتارهای خاص خود را نیز داشته باشد.
<span class="token keyword">class</span> کتاب_داستان <span class="token keyword">extends</span> کتاب <span class="token punctuation">{</span>

<span class="token comment">// صفات و رفتارهای خاص کتاب داستان</span>

<span class="token punctuation">}</span>

<span class="token keyword">class</span> کتاب_علمی <span class="token keyword">extends</span> کتاب <span class="token punctuation">{</span>

<span class="token comment">// صفات و رفتارهای خاص کتاب علمی</span>

<span class="token punctuation">}</span>

<span class="token keyword">class</span> کتاب_آموزشی <span class="token keyword">extends</span> کتاب <span class="token punctuation">{</span>

<span class="token comment">// صفات و رفتارهای خاص کتاب آموزشی</span>

<span class="token punctuation">}</span>

3. رابط‌ها:

  • رابط قابل_فروش: این رابط متدی به نام فروش را تعریف می‌کند که هر کتابی که آن را پیاده‌سازی می‌کند باید آن را داشته باشد.
<span class="token keyword">interface</span> قابل_فروش <span class="token punctuation">{</span>

<span class="token keyword">void</span> فروش<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token punctuation">}</span>
  • پیاده‌سازی رابط: کلاس‌های کتاب، کتاب_داستان، کتاب_علمی و کتاب_آموزشی باید رابط قابل_فروش را پیاده‌سازی کنند و متد فروش را برای هر کتاب به صورت جداگانه پیاده‌سازی کنند.
<span class="token comment">// پیاده سازی رابط در کلاس کتاب</span>

<span class="token keyword">public</span> <span class="token keyword">class</span> کتاب <span class="token keyword">implements</span> قابل_فروش <span class="token punctuation">{</span>

<span class="token comment">// ...</span>

<span class="token annotation punctuation">@Override</span>

<span class="token keyword">public</span> <span class="token keyword">void</span> فروش<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>

<span class="token comment">// ... (عملیات مربوط به فروش کتاب)</span>

<span class="token punctuation">}</span>

<span class="token punctuation">}</span>

4. پلی‌مورفیسم:

  • با استفاده از پلی‌مورفیسم، می‌توانیم متد فروش را برای هر کتاب به صورت جداگانه پیاده‌سازی کنیم و از آن برای فروش کتاب‌های مختلف با رفتارهای متمایز استفاده کنیم.
<span class="token comment">// مثال استفاده از پلی‌مورفیسم</span>

کتاب کتاب<span class="token number">1</span> <span class="token operator">=</span> <span class="token keyword">new</span> کتاب_داستان<span class="token punctuation">(</span><span class="token string">"دن کیشوت"</span><span class="token punctuation">,</span> <span class="token string">"سِرْوآنتِس"</span><span class="token punctuation">,</span> <span class="token number">45000</span><span class="token punctuation">,</span> <span class="token number">10</span><span class="token punctuation">,</span> <span class="token string">"داستان"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

کتاب کتاب<span class="token number">2</span> <span class="token operator">=</span> <span class="token keyword">new</span> کتاب_علمی<span class="token punctuation">(</span><span class="token string">"جهان هستی در پوست گردو"</span><span class="token punctuation">,</span> <span class="token string">"استیون هاوکینگ"</span><span class="token punctuation">,</span> <span class="token number">98000</span><span class="token punctuation">,</span> <span class="token number">5</span><span class="token punctuation">,</span> <span class="token string">"علمی"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

کتاب<span class="token number">1.</span>فروش<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// اجرای متد فروش مربوط به کتاب داستان</span>

کتاب<span class="token number">2.</span>فروش<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// اجرای متد فروش مربوط به کتاب علمی</span>

5. مثال کامل:

<span class="token comment">// ... (تعریف کلاس ها و رابط ها)</span>

<span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">Main</span> <span class="token punctuation">{</span>

<span class="token keyword">public</span> <span class="token keyword">static</span> <span class="token keyword">void</span> <span class="token function">main</span><span class="token punctuation">(</span><span class="token class-name">String</span><span class="token punctuation">[</span><span class="token punctuation">]</span> args<span class="token punctuation">)</span> <span class="token punctuation">{</span>

<span class="token comment">// ایجاد کتاب ها</span>

کتاب کتاب<span class="token number">1</span> <span class="token operator">=</span> <span class="token keyword">new</span> کتاب_داستان<span class="token punctuation">(</span><span class="token string">"دن کیشوت"</span><span class="token punctuation">,</span> <span class="token string">"سِرْوآنتِس"</span><span class="token punctuation">,</span> <span class="token number">45000</span><span class="token punctuation">,</span> <span class="token number">10</span><span class="token punctuation">,</span> <span class="token string">"داستان"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

کتاب کتاب<span class="token number">2</span> <span class="token operator">=</span> <span class="token keyword">new</span> کتاب_علمی<span class="token punctuation">(</span><span class="token string">"جهان هستی در پوست گردو"</span><span class="token punctuation">,</span> <span class="token string">"استیون هاوکینگ"</span><span class="token punctuation">,</span> <span class="token number">98000</span><span class="token punctuation">,</span> <span class="token number">5</span><span class="token punctuation">,</span> <span class="token string">"علمی"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token comment">// فروش کتاب ها</span>

کتاب<span class="token number">1.</span>فروش<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

کتاب<span class="token number">2.</span>فروش<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token comment">// ... (عملیات دیگر فروشگاه)</span>

<span class="token punctuation">}</span>

یادگیری برنامه‌ نویسی شی گرا با جاوا چه فایده‌ای دارد؟

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

یادگیری برنامه‌ نویسی شی گرا با جاوا چه فایده‌ای دارد؟

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

بنابراین، یادگیری برنامه‌نویسی شیءگرا با جاوا نه تنها برای تبدیل شدن به یک برنامه‌نویس ماهر مفید است، بلکه به شما امکان می‌دهد تا در طیف وسیعی از پروژه‌های مختلف کار کنید.

جمع‌بندی: قدرت برنامه‌ نویسی شی گرا در Java

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

کاملترین مرجع آموزش برنامه نویسی ایران + اعطای گواهینامه بازار کار

 

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

کامل بهرامی

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

نوشته های مشابه

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

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

دکمه بازگشت به بالا