Programming?
12.2K subscribers
373 photos
645 videos
978 files
507 links
🏅Channel privileges

🎗Ninth year of operation
🎗Completely specialized members
🎗Transmitter in channel automation
🎗, ...

🎯 second channel Programming books 👇
@topbookit

🎯 third channel laptop👇
@sysline


👨🏻‍💻Admin channels : @coderme
Download Telegram
در تصویر بالا ما این 4 حالت رو پیاده کردیم یادمان باشد در متدهایی که دارای نوع خروجی هستن حتما باید کلمه کلیدی return درج شود تا خروجی را برگشت دهد به این توابع که خروجی رو به ما می دهند توابع بازگشتی می گویند
خوب ما این متدها رو می تونیم با دسترسی های مختلفی تعریف کنیم ینی در اصطلاح بهشون حق دسترسی های مختلفی در پروژه ای که داریم رو بدیم و این نوع دسترسی ها بستگی به میزان استفاده و بکار گیری از متدهامون در سطح پروژمون داره بهتره با این سطح دسترسی ها آشنا بشم
دسترسی نوع public : سطح دسترسی عمومی که با کلمه کلیدی public در ابتدای تعریف فیلد ها ، متد ها و کلاس ها مشخص می شه. سطح دسترسی عمومی به این معنی که از تمام نقاط برنامه می شه به اونها دسترسی پیدا کرد.
دسترسی نوع private : سطح دسترسی خصوصی که با کلمه کلیدی private در ابتدای تعریف فیلد ها و متد ها مشخص میشه. این سطح دسترسی به این معنیه که فقط از داخل همین کلاس می شه به این فیلد ها و متد ها دسترسی پیدا کرد.
دسترسی نوع protected : کاملا شبیه به private با این تفاوت که اگر یک متد private باشه ، حتی کلاس هایی که از این کلاس مشتق شدن ( به ارث بردن) به متد خصوصی دسترسی ندارند اما به متد حفاظت شده (protected) دسترسی دارند، به علاوه ، تمام کلاس های دیگه ای که توی همین پکیج باشن ، به اعضای حفاظت شده دسترسی دارند
دسترسی نوع package : این سطح دسترسی ، با نگذاشتن هیچ یک از کلمات کلیدی بالا در ابتدای تعریف کلاس ها ، متد ها و متغیر ها مشخص می شه. همون طور که از نامش پیداست (حفاظت شده در پکیج) تمام کلاس هایی که با این کلاس توی یک پکیج قرار دارند، به این متد ، فیلد یا کلاس دسترسی دارند.
🚩نکته : به تعریف یه نوع داده ای داخل یک کلاس با حق دسترسی private فیلد گفته می شود
private int code;
و اما ما می توانیم این متد ها رو به صورت استاتیک هم تعریف کنیم ینی با اضافه کردن کلمه کلیدی static متد رو به صورت استاتیک تعریف کنیم متدهایی که به صورت استاتیک داخل یک کلاس تعریف می شوند مستقیم قابل فراخوانی هستن ینی برای فراخوانی نیازی به تعریف شی از تعرف کلاس ندارند در صورتی که نمی توانیم متدهای غیر استاتیک رو به صورت مستقیم فراخوانی کنیم و اول نیاز به فراخوانی کلاس مربوطش داریم تا به متدهاش دسترسی داشته باشیم
همچنین ما در تعریف متدها مانند متغیرها می توانیم از کلمه کلیدی final استفاده کنیم برای تبدیل متد به متدی که قابل تغییر نباشد و نتوان تغییری در متد ایجاد کرد
اما ما می توانیم متدهای دیگر رو داخل یک متد دیگر فراخوانی بکنیم و با استفاده از توابع یا متدهای بازگشتی این مبحث رو با الگوریتمی اصولی جلو ببریم به نمونه مثال زیر دقت کنید
در مثال ساده بالا ما یه متد رو داخل متد دیگر فراخوانی کرده ایم و نتیجه رو نمایش دادیم
کپسوله سازی در متد ها : اگر ما متد و یا فیلدی در کلاسی از نوع حق دسترسی private تعریف کرده باشیم فقط می توانیم داخل همون کلاس به اون دسترسی داشته باشیم مگر آنکه از کپسوله سازی استفاده کنیم و برای این کار ما اون متدی رو که با حق دسترسی خصوصی تعریف کردیم باید داخل یه متدی از نوع حق دسترسی عمومی public فراخوانی کنیم به این فرآیند کپسوله سازی می گویند
در مثال بالا ما یک فیلد با دسترسی private تعریف کردیم و با فراخوانی اون داخل یه متد public در حقیقت اون رو کپسوله سازی یا به اصطلاح encapsulation کردیم
متد های overloading : در حقیقت اگر ما داخل یه کلاس بیاییم چند متد با نام های یکسان ولی با ورودی های مختلف تعریف کنیم به این فرآیند اورلود کردن می گویند یادمان باشد در مبحث اورلود فقط نام متدها یکی هست و حتما باید ورودی های متدها متفاوت باشد در غیر این صورت کامپایلر خطا خواهد گرفت چون کامپایلر از نوع و تعداد ورودی ها متدها رو از هم تشخیص می دهد
در تصویر بالا می بینید که سه تا متد هم نام با ورودی های مختلف تعریف شده و نتیجه متدها رو هم نمایش داده ایم به این فرآیند اورلودینگ گفته می شود