آموزش تنظیم کنندگان سطح دسترسی در جاوا (به زبان ساده)

رتبه: 0 ار 0 رای sssss
آموزش تنظیم کنندگان سطح دسترسی در جاوا
نویسنده: میلاد حیدری زمان مطالعه 4 دقیقه
Banner Image

در این آموزش با انواع مختلف Access Modifier در جاوا و نحوه کار آن ها در سناریوهای مختلف آشنا می شوید.

Access Modifier چیست؟

تنظیم کنندگان سطح دسترسی کلمات کلیدی هستند که قابلیت دسترسی (میزان دسترسی) به کلاس ، اینترفیس ، متغیر ، عضو داده ، متد یا سازنده را تعیین می کنند. آنها همچنین به visibility modifier هم مشهور هستند.

با استفاده از تنظیم کنندگان سطح دسترسی، می توانید کد را کپسوله سازی کنید. به این معنی که می توان مشخص کرد چه بخشی از یک برنامه می تواند به اعضای یک کلاس دسترسی داشته باشد. بنابراین می توان از سوء استفاده از داده ها جلوگیری کرد.

انواع تنظیم کنندگان سطح دسترسی

تنظیم کنندگان سطح دسترسی در داخل پکیج

یک پکیج به سادگی یک ظرف است که انواع مختلف و مرتبط را جمع آوری می کند (کلاس های جاوا ، رابط ها ، شمارش و حاشیه نگاری).

چهار کلید واژه تنظیم کننده سطح دسترسی در جاوا وجود دارد که عبارتند از:

چهار کلید واژه تنظیم کننده سطح دسترسی در جاوا

تمام تنظیم کننده های سطح دسترسی در زیر به تفصیل توضیح داده شده اند.

۱-سطح دسترسی Default

اگر تنظیم کننده سطح دسترسی صریحا برای یک کلاس ، متغیر ، متد یا سازنده مشخص نشده باشد، فرض بر این است که سطح دسترسی default است.

مثال ۱ : سطح دسترسی default تعریف کنید

  1. package defaultPackage;
  2. class Logger {
  3. void message(){
  4. System.out.println(“This is a message”);
  5. }
  6. }

در اینجا ، کلاس Logger سطح دسترسی deafult دارد و برای کلاس هایی که به پکیج defaultPackage تعلق دارند قابل دسترسی است. اگر کلاس Logger را در پکیج های مختلف وارد (import) و سعی کنید آن را معرفی کنید ، خطا دریافت خواهید کرد.

۲- سطح دسترسی private

فقط متد ها و اعضای داده ها را می توان private اعلام کرد ، در حالی که کلاس ها یا رابط ها نمی توانند private اعلام شوند. با این حال ، کلاس های درونی در کلاس تو در تو می توانند private اعلام شوند.

اگر متد های دریافت کننده public در کلاس وجود داشته باشد ، می توانید به متغیرهای private در خارج از کلاس دسترسی پیدا کنید.

مثال ۲ : سطح دسترسی private تعریف کنید

  1. public class Data {
  2. private String name;
  3. public String getName() {
  4. return this.name;
  5. }
  6. public void setName(String name) {
  7. this.format = name;
  8. }
  9. }
  10. public class Main {
  11. Public static void main(String[] main){
  12. Data d = new Data();
  13. d.setName(“Programiz”);
  14. System.out.println(d.getName());
  15. }
  16. }

خروجی

Programiz

در اینجا ، name یک متغیر private است و فقط در داخل کلاس Data قابل دسترسی است. اما ، با کمک متد های دریافت کننده public ، می توان در کلاس Main به آن دسترسی پیدا کرد.

۳- سطح دسترسی protected

سطح دسترسی protected در همان پکیج و همچنین کلاس هایی که مستقیما sub class کلاس پایه شما هستند، دسترسی ایجاد می کنند. فقط متد ها و اعضای داده می توانند protected شوند ، در حالی که کلاس ها یا رابط ها نمی توانند protected شوند.

مثال ۳ : سطح دسترسی protected تعریف کنید

  1. // Logger.java
  2. package package1;
  3. public class Logger {
  4. protected void debug(String logLine){
  5. System.out.println(“Debug line: “+logLine);
  6. }
  7. }
  8. // Main.java
  9. package package2;
  10. import package1.Logger;
  11. public class Main extends Logger {
  12. public static void main(String [] args){
  13. Main logger = new Main();
  14. // invokes debug() from Logger class
  15. logger.debug(“hello from main”);
  16. }
  17. }

خروجی

Debug line: hello from main

مشاهده می کنید ، Logger.java و Main.java در پکیج های مختلف قرار دارند. متد ()debuge در کلاس Logger ، protected است و این متد فقط در داخل پکیج قابل دسترسی است. اما ، با این وجود ، در کلاس Main نیز قابل دسترسی است زیرا کلاس Main از کلاس Logger ارث بری می کند.

۴- سطح دسترسی public

سطح دسترسی public محدودیتی ندارد و می تواند در کلاس ها و رابط ها به همراه متدها ، اعضای داده و متغیرها اعمال شود.

مثال ۴ : سطح دسترسی public تعریف کنید

  1. // Logger.java
  2. public class Logger {
  3. public int debugLevel = 1;
  4. public void debug(String logLine){
  5. System.out.println(“Debug: “+logLine);
  6. }
  7. public void info(String logLine){
  8. System.out.println(“Info: “+logLine);
  9. }
  10. }
  11. // LoggerImp.java
  12. public class LoggerImp {
  13. public static void main( String[] args ) {
  14. Logger logger = new Logger();
  15. logger.debug(“debug with level ” + logger.debugLevel);
  16. logger.debugLevel = 5;
  17. logger.info(“info with level ” + logger.debugLevel);
  18. }
  19. }

خروجی

Debug: debug with level 1

Info: info with level 5

در اینجا ، در کلاس LoggerImp ، توانستید کلاس Logger را ایجاد کنید زیرا public است. متغیرها و متد های داخل کلاس LoggerImp نیز public هستند. از این رو ، قادر به استفاده مستقیم از آن در کلاس LoggerImp هستید.

C:UsersMrDesktopjava-access-modifiers-public-private-protected-default_0.jpg

profile name
میلاد حیدری

بخندید کتاب بخونید و خوب باشید تا جامعه مون به آرامش برسه. لطفا ! هر سوالی دارید در بخش نظرات مطرح کنید. ما یا سایر هموطنان عزیز پاسخ خواهیم داد. برای کمک به سایت ما و گسترش آموزش در بین هموطنان، در سایتها، وبلاگ ها و شبکه های اجتماعی لینک سایت ما را درج کنید.

مطالب پیشنهادی برای شما

محصولات مرتبط

مشاهده همه

دیدگاهتان را بنویسید

1 2 3 4 5

0 نظر درباره «آموزش تنظیم کنندگان سطح دسترسی در جاوا (به زبان ساده)»

    هنوز نظری برای این بخش ثبت نشده است
مشاهده همه نظرات
سبد خرید
سبد خرید شما خالی است
× جهت نصب روی دکمه زیر در گوشی کلیک نمائید
آی او اس
سپس در مرحله بعد برروی دکمه "Add To Home Screen" کلیک نمائید