سلام دوستان عزیز!
در دنیای برنامه نویسی، مثل هر جای دیگری، نیاز داریم که بعضی چیزها رو خصوصی نگه داریم و اجازه ندیم هر کسی بهشون دسترسی داشته باشه. تغییر دهنده های دسترسی (Access Modifiers) دقیقا همین کار رو انجام میدن. اونا مثل نگهبانانی هستن که مشخص می کنن چه بخش هایی از کد شما برای بقیه قابل دسترسی هستن و چه بخش هایی نه.
به زبان ساده، فکر کنید یک خونه دارید. همه می تونن از بیرون خونه رو ببینن (مثلا اسم خیابون و شماره پلاک). این میشه قسمت "Public". ولی فقط شما و خانواده تون می تونید وارد خونه بشید و به وسایل داخلش دسترسی داشته باشید. این میشه قسمت "Private". حالا یه مهمون هم دعوت کردید که میتونه توی اتاق پذیرایی بشینه ولی نمی تونه وارد اتاق خواب شما بشه. این یه جور دسترسی "Protected" هست.
حالا بیاید ببینیم این "نگهبان ها" توی دنیای برنامه نویسی چی هستن:
تغییر دهنده دسترسی (Access Modifier) | معنی | توضیحات | مثال (در زبان جاوا) |
---|---|---|---|
public |
عمومی | همه می تونن به این قسمت از کد دسترسی داشته باشن. مثل یک مغازه که درش به روی همه بازه. | public int age; |
private |
خصوصی | فقط خود اون کلاس (Class) می تونه به این قسمت دسترسی داشته باشه. مثل یک دفتر خاطرات که فقط شما می تونید بخونید. | private String password; |
protected |
محافظت شده | خود کلاس و کلاس های فرزندش (Inheritance) و کلاس هایی که توی یک پکیج هستن می تونن به این قسمت دسترسی داشته باشن. مثل یک گنجینه که فقط به اعضای خانواده اجازه داده میشه بهش دسترسی داشته باشن. | protected double salary; |
(بدون Modifier) Package Private (پیش فرض) | مختص پکیج | اگر هیچ کدوم از بالاها رو ننویسیم، فقط کلاس هایی که توی همون پکیج (Package) هستن می تونن دسترسی داشته باشن. مثل یه جشن خصوصی که فقط همسایه ها دعوت هستن. | String name; |
چرا به اینا نیاز داریم؟
یک مثال ساده به زبان جاوا:
public class Person { private String name; public int age; protected String address; public Person(String name, int age, String address) { this.name = name; this.age = age; this.address = address; } public String getName() { return name; // روشی برای دسترسی به متغیر خصوصی name } public void setName(String newName) { this.name = newName; // روشی برای تغییر متغیر خصوصی name } } public class Main { public static void main(String[] args) { Person person = new Person("Ali", 30, "Tehran"); // نمی تونیم مستقیماً به name دسترسی پیدا کنیم چون private هست: // System.out.println(person.name); // این خطا میده! // ولی می تونیم از طریق متد getName بهش دسترسی پیدا کنیم: System.out.println(person.getName()); // خروجی: Ali // می تونیم مستقیماً به age دسترسی پیدا کنیم چون public هست: System.out.println(person.age); // خروجی: 30 person.age = 35; // تغییر age به 35 System.out.println(person.age); // خروجی: 35 // آدرس هم محافظت شده است و در یک پکیج دیگه نمیشه استفاده کرد } }
در این مثال، متغیر name
خصوصی هست، بنابراین فقط از طریق متد getName()
و setName()
می تونیم بهش دسترسی داشته باشیم. متغیر age
عمومی هست و همه می تونن بهش دسترسی داشته باشن و مقدارش رو تغییر بدن. و address
محافظت شده هست.
خلاصه:
تغییر دهنده های دسترسی ابزارهای قدرتمندی هستن که به ما کمک می کنن کدمون رو امن تر، خوانا تر و قابل نگهداری تر کنیم. با استفاده درست از این ابزارها می تونیم از اطلاعاتمون محافظت کنیم و از به وجود اومدن مشکلات احتمالی جلوگیری کنیم. در انتخاب نوع دسترسی دقیق باشین. یادتون باشه در برنامه نویسی، سادگی بهترین سیاسته!
امیدوارم که این مقاله براتون مفید بوده باشه. موفق باشید!
یه مثال نا قص دیگه براتون میزارم تا کامل درک کنید!
همونطور که دیدید، استفاده از Access Modifiers به ما کمک میکنه کدهای منظمتری داشته باشیم و از بروز خطا ها جلوگیری کنیم. پس سعی کنید همیشه در برنامهنویسی ازشون استفاده کنید و به درستی انتخابشون کنید.
کلمات کلیدی: برنامه نویسی، جاوا، Access Modifiers، تغییر دهنده دسترسی، Public، Private، Protected، امنیت، پنهان سازی، Encapsulation
Protected
به کلاس های فرزند و کلاس های هم پکیج اجازه دسترسی میده. در حالی که Package Private (بدون Modifier) فقط به کلاس های هم پکیج اجازه دسترسی میده. به عبارت دیگه، کلاس های فرزند که خارج از پکیج اصلی باشن، به متغیرهای Protected دسترسی دارن، ولی به متغیرهای Package Private دسترسی ندارن.private
تعریف کنید. اگر فقط داخل کلاس های فرزند استفاده میشه، اون رو protected
تعریف کنید. و فقط در صورتی که نیاز هست که از بیرون هم بهش دسترسی داشته باشیم، اون رو public
تعریف کنید.امتیاز شما به این مطلب
امتیاز: 5 از 5 (مجموع 1 رای)
اولین نفری باشید که در مورد این مقاله نظر می دهید!
techfeed.ir© 2024 All rights reserved