OOP in Java Frist Section | شی گرایی در جاوا قسمت اول
📖توضیحات درس
📄جزوه
مفاهیم کلیدی
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، هنگام باز کردن حساب، نام فرد دریافت شده و موجودی به صورت پیشفرض صفر قرار داده میشود.
- رفتارها (متدها):
- متد
depositبرای واریز وجه: مبلغ ورودی را به موجودی اضافه میکند. - متد
withdrawبرای برداشت وجه: ابتدا بررسی میکند که اگر مبلغ درخواستی از موجودی بیشتر باشد، پیغام خطا صادر کند، در غیر این صورت مبلغ را از موجودی کسر کند.
- متد
بیشتر بدانید
نکته IDE
در محیط IntelliJ، برای ساخت سریع متد اصلی برنامه، کافیست عبارت main یا psvm را تایپ کرده و Enter بزنید.
نکته کدنویسی طبق قراردادهای جاوا، نام کلاسها باید همیشه با حرف بزرگ شروع شود (PascalCase).
نکته IDE
برای مشاهده پارامترهای ورودی یک متد یا Constructor در هنگام فراخوانی، از کلید ترکیبی Ctrl + P استفاده کنید.
