سطح دسترسی

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

folderشی گرایی
commentsبدون دیدگاه
اساطیر زبان

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

Access Modifier چیست؟

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

 


جاوا

توی این پک فوق العاده، جاوا رو جوری یاد میگیری که تو هیچ کلاس آموزشی یا پک دیگه ای نه دیدی نه شنیدی! بدون هیچ کلاسی، با جاوا اپلیکیشن بزن، پروژه محور یاد بگیر و حسابی پول در بیار! 


 

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

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

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

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

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

C:\Users\Mr\Desktop\sub.jpg

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

۱-سطح دسترسی 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:\Users\Mr\Desktop\java-access-modifiers-public-private-protected-default_0.jpg

تفاوت پک های حرفه ای ما با آموزشهای رایگان: بطور خلاصه از زمین تا آسمان! 1-پکها، جدیدترین نسخه نرم افزارها را آموزش می دهند با قابلیت های بسیار بیشتر. 2-پکها توسط متخصص آن نرم افزار، به صورت کاملا پروژه محور و با حل چالش هایی که در مسیر کار عملی و حرفه ای با آن روبرو می شوید تهیه شده اند و بعد از استفاده، کاملا برای بازار کار آماده اید! 3- متد این پکها کاملا کار شده و تا ماهها، در ذهن تان ماندگارند و یادگیری بسیار سریعتر و کاملتری خواهید داشت. آموزشهای رایگان فقط دستورات نرم افزارها را (آنهم ناقص) بیان می کنند و تازه برای ورود به بازار باید ماهها تجربه عملی هم کسب کنید !!

turned_in

چرب زبان

با این اپلیکیشن ساده، هر زبانی رو فقط با 5 دقیقه در روز، توی 80 روز مثل بلبل حرف بزن! بهترین متد روز، تقویت حافظه، آموزش تصویری. یادگیری زبان کلید یادگیری هر مهارتی در قرن 21 !


حتما بخوانید!

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این فیلد را پر کنید
این فیلد را پر کنید
لطفاً یک نشانی ایمیل معتبر بنویسید.

فهرست