09982292579
info@mehraeen.ac.ir
فارسی پرچم
فارسی
یک زبان را انتخاب کنید
فارسی پرچم
فارسی
0
دسته ها
خانه تقویم‌آموزشی مدرس وبلاگ چارت‌‌دروس تماس‌با‌ما درباره‌ما انجمن‌ها
برنامه سازی پیشرفته

جلسه 6 برنامه سازي شیءگرا در جاوا

خلاصه نکات کلیدی: مفهوم Exception و انواع آن (Checked vs. Unchecked Exceptions). بلوک‌های try, catch, finally. کلمه کلیدی throw برای پرتاب دستی Exception. کلمه کلیدی throws برای اعلام Exception در متد. اهمیت مدیریت Exception ها در ایجاد برنامه‌های پایدار و قابل اطمینان. ایجاد Exception های سفارشی (Custom Exceptions).

 مقدمه‌ای بر برنامه‌سازی شیءگرا (OOP)


  • تیتر: چرا شیءگرایی؟ مفاهیم بنیادی

  • خلاصه نکات کلیدی:

  • معرفی پارادایم‌های برنامه‌سازی (دستوری، شیءگرا).

  • مفاهیم اصلی OOP: کلاس (Class)، شیء (Object)، ویژگی (Attribute) و رفتار (Method).

  • مزایای OOP: افزایش قابلیت استفاده مجدد کد (Reusability)، قابلیت نگهداری (Maintainability) و توسعه‌پذیری (Extensibility).

  • تفاوت بین کلاس و شیء: کلاس به عنوان نقشه و شیء به عنوان نمونه‌ای از آن نقشه.

  • مثال:

  • تشبیه کلاس ماشین با ویژگی‌هایی مانند رنگ، مدل و رفتارهایی مانند روشن شدن، حرکت کردن.

  • ایجاد اشیاء مختلف از کلاس ماشین با رنگ‌ها و مدل‌های متفاوت.

  • تمرین پایان فصل:

  • یک کلاس به نام کتاب با ویژگی‌هایی مانند عنوان، نویسنده، تعداد صفحات و رفتاری مانند معرفی_کتاب تعریف کنید. سپس دو شیء از این کلاس بسازید و اطلاعات آن‌ها را نمایش دهید.

درس ۲: مفاهیم کلیدی OOP در جاوا - Encapsulation و Abstraction


  • تیتر: پوشاندن جزئیات و نمایش ضروریات: Encapsulation و Abstraction

  • خلاصه نکات کلیدی:

  • Encapsulation (کپسوله‌سازی):

  • مفهوم بسته‌بندی داده‌ها (ویژگی‌ها) و متدها در یک واحد (کلاس).

  • استفاده از سطح دسترسی private برای ویژگی‌ها و متدهای getter و setter برای کنترل دسترسی به آن‌ها.

  • اهمیت Encapsulation در امنیت داده‌ها و جلوگیری از تغییرات ناخواسته.

  • Abstraction (انتزاع):

  • مفهوم پنهان کردن جزئیات پیچیده پیاده‌سازی و نمایش تنها ویژگی‌ها و رفتارهای ضروری.

  • استفاده از کلاس‌های انتزاعی (Abstract Classes) و اینترفیس‌ها (Interfaces) در جاوا.

  • تمرکز بر “چه کاری انجام می‌شود” به جای “چگونه انجام می‌شود”.

  • مثال:

  • کلاس حساب_بانکی با ویژگی موجودی به صورت private. متدهای واریز و برداشت که منطق به‌روزرسانی موجودی را مدیریت می‌کنند و متد getMojanodi برای نمایش موجودی.

  • اینترفیس شکل با متد محاسبه_مساحت. کلاس‌های دایره و مربع که این اینترفیس را پیاده‌سازی کرده و هر کدام نحوه محاسبه مساحت خود را مشخص می‌کنند.

  • تمرین پایان فصل:

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

درس ۳: مفاهیم کلیدی OOP در جاوا - Inheritance و Polymorphism


  • تیتر: وراثت، پلی‌مورفیسم و قدرت انعطاف‌پذیری

  • خلاصه نکات کلیدی:

  • Inheritance (وراثت):

  • ایجاد کلاس‌های جدید (فرزند) بر اساس کلاس‌های موجود (والد).

  • کلمه کلیدی extends در جاوا.

  • مفهوم “is-a relationship” (رابطه “یک نوع از … است”).

  • استفاده از super برای دسترسی به اعضای کلاس والد.

  • مزایای وراثت: کاهش تکرار کد، ایجاد سلسله مراتب کلاس‌ها.

  • Polymorphism (چندریختی):

  • توانایی اشیاء در داشتن رفتارهای متفاوت بسته به نوع واقعی آن‌ها.

  • دو نوع اصلی:

  • Compile-time Polymorphism (Early Binding): بارگذاری متد (Method Overloading) - تعریف متدهای هم‌نام با پارامترهای متفاوت در یک کلاس.

  • Runtime Polymorphism (Late Binding): بازنویسی متد (Method Overriding) - تعریف متدی در کلاس فرزند با همان امضا (نام و پارامترها) که در کلاس والد تعریف شده است.

  • مثال:

  • کلاس والد حیوان با متد صدا. کلاس‌های فرزند سگ و گربه که متد صدا را بازنویسی کرده و صدای مخصوص خود را تولید می‌کنند.

  • کلاسی با متدهای چاپ(int) و چاپ(String) برای نمایش بارگذاری متد.

  • تمرین پایان فصل:

  • کلاسی به نام وسیله_نقلیه با ویژگی سرعت و متد حرکت(). کلاس‌های فرزند خودرو و دوچرخه را تعریف کنید که متد حرکت() را بازنویسی کرده و رفتار مخصوص خود را پیاده‌سازی کنند. همچنین، یک متد در کلاس خودرو با نام بوق() اضافه کنید.

درس ۴: کلاس‌ها و اینترفیس‌های خاص در جاوا


  • تیتر: ابزارهای پیشرفته: کلاس‌های Abstract، Interface، Final و Wrapper

  • خلاصه نکات کلیدی:

  • Abstract Classes: کلاس‌هایی که نمی‌توان از آن‌ها شیء ساخت و ممکن است دارای متدهای انتزاعی (بدون بدنه) و عادی باشند. برای اشتراک‌گذاری کد بین کلاس‌های مرتبط استفاده می‌شوند.

  • Interfaces: قراردادهایی که تنها متدهای انتزاعی (و ثابت‌های public static final) را تعریف می‌کنند. کلاس‌ها می‌توانند چندین اینترفیس را پیاده‌سازی کنند. برای تعریف رفتار و ایجاد پیمان (Contract) استفاده می‌شوند.

  • Final Keyword: کاربرد آن برای متغیرها (مقدار ثابت)، متدها (غیرقابل بازنویسی) و کلاس‌ها (غیرقابل وراثت).

  • Wrapper Classes: کلاس‌هایی مانند Integer, Double, Boolean که انواع داده اولیه (primitive types) را به شیء تبدیل می‌کنند. مفید برای استفاده از انواع اولیه در کالکشن‌ها و متدهای جنریک.

  • Autoboxing/Unboxing: تبدیل خودکار بین انواع اولیه و Wrapper کلاس‌ها.

  • مثال:

  • مثال کلاس انتزاعی شکل و پیاده‌سازی آن توسط کلاس‌های دایره و مربع.

  • مثال اینترفیس قابل_ذخیره که کلاس‌های فایل و پایگاه_داده آن را پیاده‌سازی می‌کنند.

  • نشان دادن final int MAX_VALUE = 100; و public final void display();.

  • تمرین پایان فصل:

  • یک اینترفیس به نام قابل_جمع با متد جمع(int عدد) تعریف کنید. سپس کلاسی به نام جمع_کننده ایجاد کنید که این اینترفیس را پیاده‌سازی کند و جمع اعداد وارد شده را در یک متغیر داخلی نگهداری کند.

درس ۵: مدیریت خطاها و استثناها (Exception Handling)


  • تیتر: مواجهه با مشکلات: درک و مدیریت Exception ها

  • خلاصه نکات کلیدی:

  • مفهوم Exception و انواع آن (Checked vs. Unchecked Exceptions).

  • بلوک‌های try, catch, finally.

  • کلمه کلیدی throw برای پرتاب دستی Exception.

  • کلمه کلیدی throws برای اعلام Exception در متد.

  • اهمیت مدیریت Exception ها در ایجاد برنامه‌های پایدار و قابل اطمینان.

  • ایجاد Exception های سفارشی (Custom Exceptions).

  • مثال:

  • تقسیم بر صفر (ArithmeticException).

  • دسترسی به ایندکس نامعتبر در آرایه (ArrayIndexOutOfBoundsException).

  • خواندن فایل ناموجود (FileNotFoundException).

  • مثال استفاده از finally برای بستن منابع (مانند فایل یا اتصال پایگاه داده).

  • تمرین پایان فصل:

  • تابعی بنویسید که یک رشته را به عنوان ورودی دریافت کرده و آن را به عدد صحیح تبدیل کند. اگر رشته ورودی قابل تبدیل به عدد صحیح نباشد، یک Exception سفارشی با پیام مناسب پرتاب کنید و در تابع فراخواننده، این Exception را با استفاده از بلوک try-catch مدیریت نمایید.

درس ۶: آشنایی با Java Collections Framework













  • تیتر: کار با مجموعه‌ها: List, Set, Map

  • خلاصه نکات کلیدی:

  • معرفی Java Collections Framework به عنوان مجموعه‌ای از اینترفیس‌ها و کلاس‌ها برای نگهداری و مدیریت اشیاء.

  • List: مجموعه‌ای مرتب که اجازه تکرار عناصر را می‌دهد (مانند ArrayList, LinkedList).

  • Set: مجموعه‌ای که اجازه تکرار عناصر را نمی‌دهد (مانند HashSet, TreeSet).

  • Map: مجموعه‌ای از جفت‌های کلید-مقدار (Key-Value Pairs) که کلیدها باید منحصربه‌فرد باشند (مانند HashMap, TreeMap).

  • کاربرد هر کدام از این ساختارها.

  • مثال:

  • استفاده از ArrayList برای ذخیره لیستی از نام دانشجویان.

  • استفاده از HashSet برای ذخیره مجموعه‌ای از کلمات منحصربه‌فرد.

  • استفاده از HashMap برای نگاشت نام دانشجو به نمره او.

  • تمرین پایان فصل:

  • برنامه‌ای بنویسید که لیستی از اعداد را دریافت کند و با استفاده از Set، اعداد تکراری را حذف کرده و سپس لیست اعداد منحصربه‌فرد را نمایش دهد.
درس متنی 6/19
در حال مشاهده
جلسه 6 برنامه سازي شیءگرا در جاوا