جلسه شماره 17رایگان

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

01:50:11

توضیحات جلسه

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

جزوه و مستندات

مفاهیم کلیدی

OOP (Object-Oriented Programming)

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

Class

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

Object

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

Attribute (Field)

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

Method

متد (Method) بلوکی از کد است که مسئول انجام عملیات یا رفتار مشخصی در یک کلاس است.

Constructor

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

this

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

Method Overloading

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

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

چهار اصل اصلی شی‌گرایی چیست؟

چهار اصل اصلی برنامه‌نویسی شی‌گرا عبارت‌اند از:

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

تفاوت Class و Object در چیست؟

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

ویژگی‌های اصلی یک Constructor چیست؟

نام Constructor باید دقیقاً با نام کلاس یکسان باشد، هیچ نوع بازگشتی—even void—ندارد و هنگام استفاده از کلمه کلیدی new اجرا می‌شود.

اگر برای کلاسی Constructor تعریف نکنیم چه اتفاقی می‌افتد؟

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

مفهوم Shadowing چیست و چگونه حل می‌شود؟

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

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

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

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

  • مقداردهی اولیه:

با استفاده از یک Constructor، هنگام باز کردن حساب، نام فرد دریافت می‌شود و مقدار موجودی به‌صورت پیش‌فرض برابر با 0 قرار می‌گیرد.

  • رفتارها (متدها):

۱. متد deposit برای واریز وجه استفاده می‌شود و مبلغ ورودی را به موجودی اضافه می‌کند.

۲. متد withdraw برای برداشت وجه استفاده می‌شود. این متد ابتدا بررسی می‌کند که مبلغ درخواستی از موجودی بیشتر نباشد؛ در غیر این صورت، پیام خطا نمایش می‌دهد. اگر موجودی کافی باشد، مبلغ از موجودی کسر می‌شود.

بیشتر بدانید

نکته IDE

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

نکته کدنویسی

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

نکته IDE

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