Farzad Afi Logo

FarzadAfi

آموزش تخصصی برنامه نویسی

OOP in Java Frist Section | شی گرایی در جاوا قسمت اول

📖توضیحات درس

🎥 این ویدیو قسمت هفدهم از بوت‌کمپ رایگان جاواست. 🧩 آموزش شی‌گرایی در جاوا – قسمت اول 📝 در این قسمت وارد یکی از مهم‌ترین مباحث برنامه‌نویسی مدرن می‌شویم: شی‌گرایی (OOP). 🛠️ با استفاده از تمرین‌های عملی، مفاهیم بنیادین شی‌گرایی را به‌صورت قدم‌به‌قدم یاد می‌گیریم؛ از تعریف کلاس و شی گرفته تا تفاوت این دو، سازنده‌ها (Constructors)، کلمه کلیدی this، و مفاهیم پایه‌ای مثل متد، scope متغیرها، و... ✅ در انتهای جلسه، با حل چند تمرین کاربردی، آموخته‌هایت را در عمل به کار می‌گیریم. 🚀 این قسمت نقطه شروع یادگیری عمیق OOP در جاواست؛ جایی که فقط یاد نمی‌گیری، بلکه واقعاً برنامه‌نویسی شی‌گرا می‌نویسی. 👥 گروه پرسش و پاسخ تلگرام: @programmingByFarzadAfi 💬 گروه پرسش و پاسخ بله: @programming_by_farzadafi ❓ هر سوالی داشتی، می‌تونی توی گروه بپرسی؛ من یا مربی‌های گروه کمکت می‌کنیم 🎓 بوت‌کمپ رایگان جاوا – آموزش تمرین‌محور برای یادگیری عمیق و ورود به بازار کار.
01:50:11🎯رایگان

📄جزوه

مفاهیم کلیدی

OOP (Object-Oriented Programming) یک رویکرد برنامه‌نویسی که فضای حل مسئله را به زندگی واقعی نزدیک می‌کند و بر پایه اشیا (Objects) استوار است.

Class یک الگو (Template) یا نقشه (Blueprint) برای ساخت اشیا که ویژگی‌ها و رفتارهای مشترک را تعریف می‌کند.

Object یک نمونه (Instance) واقعی از کلاس که در حافظه ساخته می‌شود و شامل دیتا (وضعیت) و متدها (رفتارها) است.

Attribute (Field) متغیرهایی که داخل کلاس تعریف می‌شوند و وضعیت یا ویژگی‌های یک Object را نگه می‌دارند.

Method باکس‌هایی از کد که وظیفه انجام عملیات یا رفتارهای خاصی را در کلاس بر عهده دارند.

Constructor یک متد خاص که هم‌نام با کلاس است و وظیفه مقداردهی اولیه به ویژگی‌های Object را هنگام ساخته شدن بر عهده دارد.

this کلمه‌ کلیدی که به Object فعلی اشاره می‌کند و برای رفع ابهام بین فیلدهای کلاس و پارامترهای ورودی متد استفاده می‌شود.

Method Overloading قابلیت تعریف چندین متد با نام یکسان اما با پارامترهای متفاوت (از نظر نوع یا تعداد) در یک کلاس.

نکات مهم مصاحبه‌ای

چهار اصل اصلی شی‌گرایی چیست؟ ارث‌بری (Inheritance)، کپسوله‌سازی (Encapsulation)، انتزاع (Abstraction) و چندریختی (Polymorphism).

تفاوت Class و Object در چیست؟ کلاس یک مفهوم انتزاعی و نقشه راه است، در حالی که آبجکت نمونه فیزیکی و واقعی است که در حافظه جا می‌گیرد.

ویژگی‌های اصلی یک Constructor چیست؟ نام آن باید دقیقاً با نام کلاس یکی باشد، هیچ نوع بازگشتی (حتی void) ندارد و هنگام استفاده از کلمه کلیدی new اجرا می‌شود.

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

مفهوم Shadowing چیست و چگونه حل می‌شود؟ زمانی که نام پارامترهای یک متد با نام فیلدهای کلاس یکی باشد، متغیر محلی روی فیلد کلاس سایه می‌اندازد. برای حل این مشکل و اشاره به فیلد کلاس، از کلمه کلیدی this استفاده می‌کنیم.

مثال کاربردی: مدیریت حساب بانکی

در این سناریو، کلاسی به نام BankAccount طراحی می‌شود. این کلاس دارای ویژگی‌هایی مثل نام صاحب حساب (firstName, lastName) و موجودی (balance) است.

  • مقداردهی اولیه: با استفاده از یک Constructor، هنگام باز کردن حساب، نام فرد دریافت شده و موجودی به صورت پیش‌فرض صفر قرار داده می‌شود.
  • رفتارها (متدها):
    1. متد deposit برای واریز وجه: مبلغ ورودی را به موجودی اضافه می‌کند.
    2. متد withdraw برای برداشت وجه: ابتدا بررسی می‌کند که اگر مبلغ درخواستی از موجودی بیشتر باشد، پیغام خطا صادر کند، در غیر این صورت مبلغ را از موجودی کسر کند.

بیشتر بدانید

نکته IDE در محیط IntelliJ، برای ساخت سریع متد اصلی برنامه، کافیست عبارت main یا psvm را تایپ کرده و Enter بزنید.

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

نکته IDE برای مشاهده پارامترهای ورودی یک متد یا Constructor در هنگام فراخوانی، از کلید ترکیبی Ctrl + P استفاده کنید.