menusearch
javapro.ir

♨️ جلسه شانزدهم - کنترل سطح دسرسی (Modifiers)

جستجو
پنج شنبه ۱ آذر ۱۴۰۳ | ۱۴:۴۰:۵۹
۱۳۹۵/۸/۶ پنج شنبه
(4)
(0)
♨️ جلسه شانزدهم - کنترل سطح دسرسی (Modifiers)
♨️ جلسه شانزدهم - کنترل سطح دسرسی (Modifiers)

فهرست جلسات دوره مقدماتی جاوا

مقدمه اول | جاوا چیست؟

مقدمه دوم | تاریخچه جاوا

مقدمه سوم | ویژگی‌های زبان جاوا

جلسه اول | راهنمای دانلود و نصب JDK

جلسه دوم | اجرای یک برنامه جاوا در Notepad

جلسه سوم | راهنمای دانلود و نصب Eclipse

جلسه چهارم | ساخت اولین برنامه جاوا در Eclipse

جلسه پنجم | متغیر ها در جاوا

جلسه ششم | تغییر فونت محیط Eclipse

جلسه هفتم | عملگر‌های پایه ای جاوا

جلسه هشتم | دستورات شرطی

جلسه نهم | اشیا و کلاس ها

جلسه دهم | ورودی گرفتن

جلسه یازدهم | حلقه‌های کنترلی

جلسه دوازدهم | کلمه کلیدی static

جلسه سیزدهم | کلاس Math

جلسه چهاردهم | کلاس String

جلسه پانزدهم | آرایه‌های یک بعدی

جلسه شانزدهم | کنترل سطح دسرسی (Modifiers)

جلسه هفدهم | متدها در جاوا

جلسه هجدهم | کلمه کلیدی this

جلسه نوزدهم | کلاس‌های داخلی

جلسه بیستم | ارث بری در جاوا

جلسه بیست و یکم | کلمه کلیدی final

جلسه بیست و دوم | Overriding در جاوا

جلسه بیست و سوم | Polymorphism( چند ریختی)

جلسه بیست و چهارم | چندریختی را بهتر یادبگیرید

جلسه بیست و پنجم | Abstraction( انتزاع)

جلسه بیست و ششم | Encapsulation(کپسوله سازی)

جلسه بیست و هفتم | اینترفیس (Interface)

جلسه بیست و هشتم | کلاس Random

جلسه بیست و نهم | Exceptions (استثناها)

جلسه سی ام | کار با فایل در جاوا(Files and I/O)

جلسه سی و یکم | کلاس InputStreamReader

جلسه سی و دوم | کلاس OutputStreamWriter

جلسه سی و سوم | کلاس BufferedReader

جلسه سی و چهارم | کلاس BufferedWriter

جلسه سی و پنجم | Serialization در جاوا

جلسه سی و ششم | چندنخی(Multithreading)

جلسه سی و هفتم | آرایه دو بعدی در جاوا

جلسه سی و هشتم | کلاس ArrayList در جاوا

جلسه سی و نهم | Non Access Modifier در جاوا

 

 

 

دوره رایگان مقدماتی زبان جاوا

 

 

گاهی در زبان جاوا نیاز هست راه دسرسی به ویژگی ها و رفتار های (متغیرها و متدها) کلاس خود را کنترل کنیم.یعنی اجازه ندهیم هر کسی از راه رسید از این متدها و متغیر های کلاسمون استفاده کنه،حالشو ببره بدون این که از ما اجازه بگیره!!!!! کنترل سطح دسرسی به ویژگی ها و رفتار های کلاس را می‌توان به یک تلفن تشبیه کرد!!! اگر ما تلفن خود را در معرض عموم مردم قرار بدهیم ،همه از آن استفاده می‌کنند!!! چیزی شبیه تلفن عمومی می‌شود!

 

اما اگر تمایل نداشته باشیم که هر کسی از آن استفاده کند آن را در مکانی می‌گذاریم که دسرسی ان برای عموم مردم محدود باشد!!! مثال دومی که می‌توان برای کنترل سطح دسرسی زد همان چت کردن در شبکه های اجتماعی است!! مثلا شما در واتس اپ می‌توانید در یک گروه عمومی با سایر دوستان خود چت کنید و همه اعضای گروه از پیام شما با خبر می‌شوند اما اگر خواستید بصورت کنترل شده و خصوصی چت کنید به pv یا private هم دیگر می‌روید و هرکسی هم نمی‌تواند به pv شما دسرسی داشته باشد!

 

همه این مثال ها را گفتم که کنترل سطح دسرسی را برای شما ملموس تر کرده باشم.حالا برویم سراغ اصل مطلب در جاوا برای کنترل سطح دسرسی از واژه ای تحت عنوان اصلاح کننده های سطح دسرسی (Access level modifiers) استفاده میکنیم.خب این یعنی چه؟! مثلا برای کنترل سطح دسرسی به تلفن خود و محدود کردن دسرسی به ان،تلفن را از یک مکان عمومی به یک مکان خصوصی می‌بریم که در دسرس مردم نباشد یعنی دسرسی به تلفن خود را از حالت عمومی به خصوصی تغییر یا اصلاح کردیم به این حالت عمومی (public) یا خصوصی (private) اصلاح کننده (modifiers) سطح دسرسی می‌گویند.


اصلاح کننده های (تغییر دهنده ها یا modifiers) سطح دسرسی در جاوا تعیین می‌کنند که سایر کلاس ها تا چه اندازه می‌توانند از ویژگی ها و رفتار های کلاس فعلی شما استفاده کنند.


پس تا اینجا این اصلاح کننده ها برای کنترل دسرسی سایر کلاس ها به ویژگی ها و رفتار های شما می‌باشند.در ادامه آموزش به هر یک از اصلاح کننده های سطح دسرسی می‌پردازیم:


اصلاح کننده سطح دسرسی عمومی – کلمه کلیدی public

 

💡 کلمه کلیدی public از شناخته شده ترین کلمه های کلیدی جاوا هست و زیاد می‌بینیمش و باهاش کار کردیم و کار داریم!!!

 

💡 public از ساده ترین اصلاح کننده های سطح دسرسی در جاوا است زیرا همان طور که از اسمش معلومه ماهیتی مشخص دارد ،دسرسی ان چیزی شبیه تلفن عمومی است یعنی همه کلاس های دیگر می‌توانند به متغیرها و متدهایی که از نوع public تعیین کردیم دسرسی داشته باشند.

 

💡 پس وقتی یک متغیر یا متد از نوع public در کلاس خود تعریف میکنیم برای سایر کلاس ها این ویژگی ها و متدها قابل دسرسی است.

 

💡 در کل یک کلاس، متغیر، متد، اینترفیس (درآینده بررسیش میکنیم)، سازنده و... وقتی public اعلام می‌شود،توسط سایر کلاس ها قابل دسرس هستند.

 

💡 این کلمه کلیدی زمانی مفید است که متغیر ها و متدهای یک کلاس در یک اپلیکیشن باید قابل دسرس برای کل کلاس های برنامه ما باشد.

 

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

 

خب امیدوارم توضیحاتم جامع و کامل و کافی بوده باشه،حالا این اصلاح کننده را با مثال بررسی میکنیم:

 

مثال: در زیر دو کلاس به نام های MathExample و MainTest در یک پکیج با نام javalike داریم:

 

کلاس MathExample درون پکیج javalike

package javalike;

public class MathExample {

   public int area;

   public void calculate_Area_Rectangle(
int length, int width) {

       area = length * width;

   }

 

کلاس MainTest درون پکیج javalike

package javalike;

public class MainTest {

   public static void main(String[] args) {
   
  MathExample math=new MathExample();
      math.calculate_Area_Rectangle(10, 100);
      System.out.println("Area="+math.area);      
   }

}

 

✔ کلاس MathExample یک ویژگی به نام area از نوع public و یک متد که مساحت مستطیل را حساب میکند و از نوع public تعریف شده است، دارد. ما قصد داریم در کلاس MainTest یک شی از کلاس MathExample بسازیم و از طریق ان به متدها و متغیر های کلاس MathExample دسرسی داشته باشیم.این یعنی قصد داریم در یک کلاس از ویژگیها و رفتار های کلاس دیگری استفاده کنیم.از ان جهت که متغیرها و متدهای کلاس MathExample  از نوع public هست پس سطح دسرسی عمومی است و به راحتی می‌توان به ویژگی ها و متد آن در کلاس دیگر نظیر MainTest استفاده کنیم.


✔ در کلاس MainTest یک شی از کلاس MathExample به نام math ایجاد کرده ایم.


✔ حال از طریق شی math به ویژگی ها و رفتار های کلاس MathExample درسی پیدا میکنیم.البته درصورتی می‌توانیم در یک کلاس از ویژگی ها و رفتارهای کلاسی دیگر استفاده کنیم که این ویژگی ها و رفتار ها از نوع public باشند.


✔ در تصویر(1) سطح دسرسی شی math که از نوع کلاس MathExample است، در کلاس MainTest مشاهده می‌کنید.به راحتی این شی می‌تواند بدون هیچ مانعی به ویژگی ها و رفتار های کلاس MathExample که از نوع public است دسرسی داشته باشد:

 

 

modifier در جاوا

 

✔  همان طور که از متد calculate_Area_Rectangle  مشخص هست که متد دو پرامتر از نوع int از ورودی میگیرد و مساحت مستطیل را محاسبه و درون متغیر نمونه area میریزد و در پایان در خروجی این متغیر نمونه را چاپ میکنیم.


✔    حالت قرار گیری دو کلاس در یک پکیج و خروجی آن را در زیر مشاهده می‌کنید:تصویر(2)


💡 شرط لازم استفاده یک کلاس از ویژگی ها و رفتارهای کلاس دیگر هم پکیج بودن دو کلاس است،یعنی هر دو کلاس در یک پکیج باشد،مثلا دو کلاس بالا هر دو در یک پکیج به نام javalike بودند،حالا شرط بعدی (کافی) بستگی به کنترل سطح دسرسی که برای متغیرها و متدهای خود مشخص کردیم دارد.


💡   اگر دو کلاس هم پکیج نبودند و قصد داشتیم از ویژگی ها و رفتار های کلاس دیگر استفاده کنیم کافیست کلاس مورد نظر درون پکیج مربوطه را import کنیم:


مثال:فرض کنید کلاس A درون پکیج javalike و کلاس B درون پکیج tutorial باشد،قصد داریم در کلاس B یک شی از کلاس A ایجاد کنیم،اما چون کلاس A و B درون پکیج های متفاوتی هستند نمی‌توان از کلاس A درون کلاس B شی ساخت!تنها راهش این هست که پکیج کلاس A یعنی javalike را درون کلاس B صدا بزنیم( import )کنیم:

 

کلاس A

Package javalike;

 

public class A {
   public int a=5;

}

 

کلاس B

package tutorial;

import javalike.A;

public class B {

   public static void main(String[] args) {
       A objectA=new A();

   }
}

 

ادامه اموزش را در پایین دنبال می‌کنیم..........

 

امپورت کردن یک کلاس در کلاس دیگر در جاوا

خروجی مثال بالا: خروجی مثال دو کلاس MathExample و MainTest بصورت زیر است:

 

Area=1000


✔ با توجه به این که متد main در کلاس MainTest بود و یک شی از کلاس MathExample درون کلاس MainTest ایجاد کرده بودیم کافیست کلاس MainTest را اجرا کنیم و بصورت خودکار هر دو کلاس اجرا می‌شود.

 

اصلاح کننده سطح دسرسی public کمترین حافظت را از ویژگی ها و رفتار های ما میکند.تنها زمانی از این اصلاح کننده استفاده کنید که کاملا اطمینان داشته باشید که نیاز هست هرچیز و همه چیز به متغیر ها و متدهای ما دسرسی داشته باشند.


✔ در این مثال با روش دسرسی به ویژگی ها و رفتارهایی که از نوع public هستند در کلاس دیگر یاد گرفتیم.حالا سراغ اصلاح کننده(modifiers) دیگر در جاوا می‌رویم.

 

✔ اصلاح کننده سطح دسرسی پیشفرض(Default) – بدون کلمه کلمه کلیدی


✔ اصلاح کننده (modifiers) سطح دسرسی پیشفرض (Default) به معنای این هست که ما صریحا برای کلاس ها، متدها، متغیرها و.... اصلاح کننده دسرسی در نظر نمی‌گیرید یا درکل هیچ کلمه کلیدی برای کلاس ها،متغیرها و...تعریف نمی‌کنیم.


وقتی متغیرها یا متدهای یک کلاس اصلاح کننده پیشفرض درنظر گرفته می‌شود برای سایر کلاس ها قابل دسرس هستند.

 

 

 

package javalike;

public class A {
    int a=5;
    int b=123;
    String str=" Salam";

}

 

✔ Modifier یا اصلاح کننده سطح دسرسی برای متغیرهای این کلاس از نوع پیشفرض هستند چون هیچ کلمه کلیدی برای متغیرها تعریف نشده است.
اصلاح کننده (Modifier) سطح دسرسی خصوصی – کلمه کلیدی private


✔ وقتی متدها، متغیرها، سازنده ها و... با کلمه کلیدی private اعلام می‌شوند،تنها درون بدنه کلاس خودشان قابل دسرس هستند.


✔ با private کردن ویژگیها و رفتار های کلاس خود آن را از دسرس هر نامحرمی بدور نگه میدارید 😊


✔ Modifier یا اصلاح کننده (تغییر دهنده) سطح دسرسی private، سطح دسرسی را بسیار محدود می‌کند.


✔ کلاس ها (class) و اینترفیس ها (interface) هرگز نمی‌توانند از نوع private باشند.


✔ در مورد اینترفیس در جلسات آینده که مربوط به مباحث شی گرایی است خواهیم پرداخت.


✔ متغیرهایی که private تعریف می‌شوند تعریف می‌شوند تنها داخل بدنه کلاس قابل دسرس هستند و در کلاس های دیگر بصورت مستقیم قابل دسرس نیستند.


✔ برای دسرسی یک کلاس به متغیر های private درون کلاس دیگر از متدهای public ،getter استفاده می‌کنیم.
•    متدهای getter چی هستند؟!!!! جلوتر بهش می‌پردازیم! 😊

 

 

...ادامه این جلسه آموزشی را می‌توانید بصورت کتاب الکترونیکی (PDF شده) در لینک زیر دریافت کنید.

 

 



این جلسه آموزشی را بصورت کامل و مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید)

آموزش آسان و ساده زبان برنامه نویسی جاوا

لینک دانلود

 

 


نشر این مطلب با ذکر منبع (لینک سایت) بلامانع است.
برای با خبر شدن از جدیدترین مطالب آموزشی جاوا عضو کانال تلگرام ما شوید.

نظرات کاربران
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

بستن
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

2 نظر
Sharareh Khan Mirza
جمعه یکم تیر ۰۳
پاسخ
()
()
Sharareh Khan Mirza
Modifire ro khoob dars nadid Dono Modifire darim:1.Access Modifiers,2.Non-Access Modifiers Access Modifiers: public, private, default, protected Non-Access Modifiers: 1. final, abstract, transient, synchronized, volatile, static,
پاسخ مدیر سایت
جلسه ۲۹ Non-Access Modifiers رو آموزش دادیم، سپاس از توجه تون
پاسخ مدیر سایت
Abdul wahed sabury
دوشنبه بیست و پنجم شهریور ۹۸
پاسخ
(0)
()
Abdul wahed sabury
ممنون بابت بسته آموزشي تون عاليه واقعا ممنون
پاسخ مدیر سایت
سلام.خوش حالم...موفق باشین🌺❤
پاسخ مدیر سایت
هدر سایت
بلک فرایدی آکادمی جاواپرو،50% تخفیف روی تمامی دوره های جاوا تا 10 آذر 1403
مشاهده سرفصل ها و ثبت نام در دوره Spring Boot جاواپرو  [کلیک کنید]
آموزش پروژه محور اسپرینگ بوت(Spring Boot)-سیستم دانشگاه
ثبت نام در دوره آموزش Spring security
دوره معماری میکروسرویس ها (Microservices) با استفاده از Spring Boot و Spring Cloud
دوره پرتاب | آموزش پیش نیازهای برنامه نویسی
دوره آموزش مبانی زبان برنامه نویسی جاوا
دوره آموزش مفاهیم پیشرفته زبان برنامه نویسی جاوا
مقدمه ای از زبان برنامه نویسی جاوا(java)
آموزش زبان برنامه نویسی جاوا
آموزش گرافیک در زبان برنامه نویسی جاوا
آموزش مدیریت چیدمان گرافیکی در زبان جاوا
آموزش ساخت بازی دوبعدی در زبان جاوا
Collection ها در زبان برنامه نویسی جاوا
آموزش پروژه محور ساخت برنامه مدیریت بانک با JavaFX
نمونه پروژه های رایگان زبان جاوا
آموزش دیتابیس در زبان برنامه نویسی جاوا
نمونه مثال پایه ای زبان برنامه نویسی جاوا
نمونه مثال String در زبان برنامه نویسی جاوا
آموزش جامع برنامه نویسی JavaFX
آموزش ساخت برنامه آزمون تستی در JavaFX
آموزش برنامه نویسی سوکت در جاوا
آموزش ساخت برنامه دفترچه تلفن با JavaFX
آموزش ساخت ربات ساده تلگرام با زبان جاوا
آموزش ساخت برنامه ماشین حساب با JavaFX
آموزش ساخت برنامه ساده مدیریت ایمیل ها با JavaFX
دوره آموزش Spring Boot
سفارش انجام پروژه زبان برنامه نویسی جاوا(JAVA)
سفارش انجام پروژه برنامه نویسی متلب(MATLAB) با قیمت منصفانه و تحویل به موقع
سفارش انجام پروژه زبان برنامه نویسی سی شارپ (#C)
سفارش انجام پروژه زبان برنامه نویسی سی(C)
سفارش انجام پروژه زبان برنامه نویسی پایتون(Python)
سفارش انجام پروژه زبان برنامه نویسی PHP (پی اچ پی)
سفارش انجام پروژه زبان برنامه نویسی اسمبلی(Assembly)
سفارش انجام پروژه زبان برنامه نویسی جاوا اسکریپت (Javascript)
سفارش انجام پروژه هوش مصنوعی
سفارش انجام پروژه طراحی الگوریتم
سفارش انجام پروژه ساختمان داده ها
سفارش انجام پروژه مهندسی نرم افزار
سفارش انجام پروژه شبکه های کامپیوتری
سفارش انجام پروژه پایگاه داده: دیتابیس (database)
 سفارش انجام پروژه سیستم عامل
سفارش انجام پروژه پاورپوینت(PowerPoint)
سفارش انجام پروژه اکسل (Excel)
سفارش انجام تحقیق و تهیه مقاله
سوالات متداول برنامه نویسی
جدیدترین مطالب
گفتگو را شروع کنید
مشاوره ،تدریس خصوصی و سفارش انجام انواع پروژه های برنامه نویسی