آکادمی چابک | مرجع تخصصی جدیدترین دوره‌های آموزشی
جستجو برای:
سبد خرید 0
  • صفحه اصلی
  • دوره های آموزشی
  • اخبار و مقالات
  • درباره ما
  • تماس با ما
ورود
[suncode_otp_login_form]
گذرواژه خود را فراموش کرده اید؟
عضویت
[suncode_otp_registration_form]

ارسال مجدد کد یکبار مصرف (00:90)
  • 02177010771
  • info@chabokacademy.com
  • اخبار و مقالات
  • علاقمندی ها
آکادمی چابک | مرجع تخصصی جدیدترین دوره‌های آموزشی
  • صفحه اصلی
  • دوره های آموزشی
  • اخبار و مقالات
  • درباره ما
  • تماس با ما
شروع کنید
0

وبلاگ

آکادمی چابک | مرجع تخصصی جدیدترین دوره‌های آموزشی > اخبار و مقالات > برنامه نویسی > تفاوت متد Public با Protected و Private در کلاس‌ها چیست؟

تفاوت متد Public با Protected و Private در کلاس‌ها چیست؟

تیر 4, 1403
ارسال شده توسط ادمین آکادمی
برنامه نویسی
تفاوت متد Public با Protected و Private

فهرست مطالب این نوشته

Toggle
  • اصلاح‌کننده دسترسی یا Access Modifier چیست؟
  • انواع Access Modifierها:
  • تفاوت متد Public با Protected و Private
  • سطوح دسترسی در C#
    • متد Public
    • متد Protected
    • متد Private
  • دیگر سطوح دسترسی
    • Internal
    • Protected Internal
تعداد بازدید: 120
5/5 امتیاز

در زبان برنامه‌نویسی C#، متدهای Public ،Protected و Private تفاوت‌های زیادی در دسترسی و استفاده دارند. این تفاوت‌ها نقش مهمی در کنترل دسترسی به اعضای یک کلاس دارند و از اصول اصلی برنامه‌نویسی شی‌ءگرا (OOP) به‌شمار می‌رود.

در ادامه، تفاوت متد Public با Protected و Private را بررسی می‌کنیم و هرکدام را به‌طور کامل توضیح می‌دهیم.

chabokacademy
دوره‌های آموزشی آکادمی چابک
با تخفیف‌های ویژه آکادمی چابک، یادگیری را شروع کنید!
مشاهده دوره‌ها

اصلاح‌کننده دسترسی یا Access Modifier چیست؟

Access Modifier یا اصلاح‌کننده دسترسی، در زبان‌های برنامه‌نویسی شیءگرا (OOP)، برای تعیین سطح دسترسی به ویژگی‌ها (متغیرها) و متدهای یک کلاس استفاده می‌شود. این اصلاح‌کننده‌ها به توسعه‌دهندگان کمک می‌کنند تا کنترل دقیقی بر روی نحوه دسترسی به اعضای کلاس داشته باشند، به طوری که امنیت و سازماندهی کد افزایش یابد.

در اینجا، به معرفی انواع Access Modifierها و نقش آن‌ها در برنامه‌نویسی پرداخته می‌شود:

انواع Access Modifierها:

  1. Public
  2. Private
  3. Protected
  4. Default (Package-Private) (بدون مشخص‌کننده دسترسی)

Access Modifier

تفاوت متد Public با Protected و Private

تفاوت‌های متدهای Public با Protected و Private به‌شرح زیر هستند:

Public:

متدهای Public برای همه قابل دسترسی هستند. این بدان معنا است که هر کد، چه در داخل کلاس و چه در خارج از آن، می‌تواند به متدهای Public دسترسی داشته باشد.

Protected:

متدهای Protected فقط در داخل کلاس و کلاس‌های مشتق‌شده (فرزند) قابل دسترسی هستند. این محدودیت باعث می‌شود که دسترسی به این متدها از خارج از سلسله‌مراتب کلاس‌ها ممکن نباشد.

Private:

متدهای Private فقط در داخل همان کلاس قابل دسترسی هستند. این متدها برای مخفی‌سازی پیاده‌سازی داخلی کلاس و جلوگیری از دسترسی خارجی استفاده می‌شوند.

در ادامه برای درک عمیق‌تر تفاوت متد Public با Protected و Private هرکدام را بررسی کرده‌ایم و مثال‌های لازم را آورده‌ایم.

سطوح دسترسی در C#

سطوح دسترسی در C#

سطوح دسترسی در C# به ما این امکان را می‌دهند که تعیین کنیم چه کسانی به اعضای یک کلاس (متدها، متغیرها و خصوصیات) دسترسی داشته باشند. این سطوح دسترسی شامل Public ،Protected و Private می‌شوند. علاوه‌بر این، سطح دسترسی Internal و Protected Internal نیز وجود دارند که در ادامه به آن‌ها اشاره می‌کنیم.

متد Public

متدهای Public برای تعامل بین کلاس‌ها و همچنین فراهم کردن یک API برای کلاس مورد استفاده قرار می‌گیرند. این متدها به همه کدها، بدون محدودیت، اجازه دسترسی می‌دهند.

فریم ورک چیست؟ همه چیز درباره فریم‌ورک‌ها در برنامه‌نویسی
بخوانید

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

مزایا:

  • قابلیت دسترسی از هر نقطه از برنامه.
  • مناسب برای متدهایی که باید برای همه قابل استفاده باشند.

معایب:

  • ممکن است منجر به استفاده نادرست از متدها و داده‌ها شود.
  • کنترل کمتری بر روی دسترسی و تغییرات وجود دارد.

مثال؛ برای درک بهتر تفاوت متد Public با Protected و Private

public class ExampleClass

{

public void PublicMethod()

{

Console.WriteLine(“This is a public method.”);

}

}

public class Test

{

public static void Main()

{

ExampleClass obj = new ExampleClass();

obj.PublicMethod(); // Accessible from outside the class

}

}

در این مثال، متد PublicMethod به‌شکل Public تعریف شده است و می‌توان از خارج از کلاس ExampleClass به آن دسترسی داشت. این ویژگی باعث می‌شود که متدهای Public برای ارتباط بین کلاس‌ها و ارائه عملکردهای عمومی استفاده شوند.

متد Protected

متدهای Protected دسترسی محدودتری دارند و فقط از داخل کلاس‌های پایه و کلاس‌های مشتق‌شده قابل دسترسی هستند. این متدها برای تعریف رفتارهایی که قرار است فقط در داخل سلسله‌مراتب وراثت استفاده شوند، به‌کار می‌روند.

متدهای Protected اغلب در کلاس‌های پایه تعریف می‌شوند تا کلاس‌های فرزند بتوانند از این رفتارها استفاده کنند.

مزایا:

  • امکان استفاده مجدد از کد در کلاس‌های مشتق‌شده.
  • کنترل بیشتر بر دسترسی به اعضای کلاس.

معایب:

  • از خارج از سلسله‌مراتب کلاس‌ها قابل دسترسی نیستند.
  • پیچیدگی بیشتر در طراحی کلاس‌ها و وراثت.

public - private - protected

مثال: برای درک بهتر تفاوت متد Public با Protected و Private

public class BaseClass

{

protected void ProtectedMethod()

{

Console.WriteLine(“This is a protected method.”);

}

}

public class DerivedClass : BaseClass

{

public void AccessProtectedMethod()

{

ProtectedMethod(); // Accessible within derived class

}

}

public class Test

{

public static void Main()

{

DerivedClass obj = new DerivedClass();

obj.AccessProtectedMethod(); // Calls protected method through public method

}

}

در این مثال، ProtectedMethod در کلاس BaseClass به‌عنوان یک متد Protected تعریف شده است و فقط از داخل کلاس‌های مشتق‌شده (مانند DerivedClass) قابل دسترسی است. متد AccessProtectedMethod در کلاس DerivedClass از متد Protected استفاده می‌کند و از آنجا که AccessProtectedMethod به‌صورت Public تعریف شده است، می‌توان از خارج از کلاس DerivedClass به آن دسترسی داشت.

متد Private

متدهای Private دارای بالاترین سطح محدودیت دسترسی هستند. این متدها فقط در داخل همان کلاس قابل دسترسی هستند و نمی‌توان از خارج از آن‌ها استفاده کرد. این ویژگی برای مخفی‌سازی جزئیات پیاده‌سازی و حفاظت از داده‌های داخلی کلاس بسیار مفید است.

متدهای Private فقط در داخل همان کلاس قابل دسترسی هستند و هیچ کد خارجی نمی‌تواند به آن‌ها دسترسی داشته باشد. این متدها برای مخفی‌سازی جزئیات پیاده‌سازی و حفاظت از داده‌های داخلی کلاس بسیار مفید هستند.

همچنین متدهای Private اغلب برای عملیات داخلی کلاس که نباید از بیرون دسترسی داشته باشند، استفاده می‌شوند. بنابراین تفاوت public و private در c# این است که در اعضای public (متدها، متغیرها و خصوصیات) از هر جایی در برنامه قابل دسترسی هستند.

کاربرد پایتون در شبکه و امنیت شبکه چیست؟
بخوانید

اما اعضای private فقط از داخل همان کلاس قابل دسترسی هستند و هیچ کد خارجی نمی‌تواند به آن‌ها دسترسی داشته باشد.

مزایا:

  • حداکثر کنترل بر دسترسی به اعضای کلاس.
  • حفاظت از جزئیات پیاده‌سازی و جلوگیری از تغییرات ناخواسته.

معایب:

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

مثال؛ برای درک کامل تفاوت متد Public با Protected و Private

public class ExampleClass

{

private void PrivateMethod()

{

Console.WriteLine(“This is a private method.”);

}

public void PublicMethod()

{

PrivateMethod(); // Accessible within the same class

}

}

public class Test

{

public static void Main()

{

ExampleClass obj = new ExampleClass();

obj.PublicMethod(); // Calls private method through public method

}

}

در این مثال، متد PrivateMethod به شکل Private درنظر گرفته شده است و فقط در داخل کلاس ExampleClass قابل دسترسی می‌باشد. با این حال، متد PublicMethod که به‌صورت Public تعریف شده است، می‌تواند این متد را فراخوانی کند و به کاربران خارجی اجازه می‌دهد تا به‌صورت غیرمستقیم از PrivateMethod استفاده کنند.

اگر می‌خواهید در کلاس در مفاهیمی مثل تفاوت public – private – protected را یاد بگیرید، می‌توانید در کلاس‌های به‌روز آکادمی چابک شرکت کنید.

سطح دسترسی متدها

دیگر سطوح دسترسی

از دیگر سطوح دسترسی می‌توانیم به گزینه‌های زیر اشاره کنیم:

Internal

متدهای Internal فقط در داخل همان اسمبلی (پروژه) قابل دسترسی هستند. این سطح دسترسی برای کدهایی که باید در یک پروژه مشترک استفاده شوند اما نباید از پروژه‌های دیگر قابل دسترسی باشند، مناسب است.

Protected Internal

متدهای Protected Internal هم در داخل سلسله‌مراتب وراثت و هم در داخل همان اسمبلی قابل دسترسی هستند.

سخن پایانی

سطح دسترسی متدها در C# ابزاری قدرتمند برای کنترل و مدیریت دسترسی به اعضای کلاس‌ها است. برای تعیین سطح دسترسی کاربران در سی شارپ باید با تفاوت متد Public با Protected و Private آشنا باشید.

متدهای Public برای ارائه API‌های عمومی و تعامل بین کلاس‌ها استفاده می‌شوند، متدهای Protected برای مدیریت دسترسی در داخل سلسله‌مراتب وراثت به‌کار می‌روند و متدهای Private برای مخفی‌سازی و حفاظت از داده‌های داخلی کلاس کاربرد دارند.

آکادمی چابک دوره‌های جامعی در زمینه برنامه‌نویسی ارائه می‌دهد که شامل مفاهیم پایه تا پیشرفته می‌شود. دوره های آکادمی چابک شامل آموزش زبان‌های برنامه‌نویسی مختلف مانند C#, Java, Python و JavaScript هستند. اگر علاقه‌مندی به این دوره‌ها هستید، هم‌اکنون با کارشناسان ما تماس بگیرید.

منابع

bytehide.com

​learn.microsoft.com

قبلی چه تفاوتی بین برنامه نویس Back End و برنامه نویس Front End است؟ تعامل آنها با یکدیگر چگونه است؟
بعدی تفاوت for و foreach در جاوا اسکریپت چیست؟

دیدگاهتان را بنویسید لغو پاسخ

جستجو برای:
دسته‌ها
  • آموزش گرافیک کامپیوتری
  • امنیت و شبکه
  • برنامه نویسی
  • پایگاه داده
  • سیستم عامل
  • طراحی وب
  • کسب و کار
  • هوش مصنوعی
برچسب‌ها
MBA آموزش و کاربرد هوش مصنوعی اهداف شغلی بازاریابی محصول کسب و کار اینترنتی
logoacademy
آکادمی چابک با برگزاری دوره‌های جامع و تخصصی در حوزه‌ی نرم‌افزار، تحلیل کسب‌وکار و همچنین مشاوره‌های تخصصی در این حوزه‌ها سعی بر آن دارد تا علاقمندان پس از گذراندن دوره‌های مربوطه بتوانند از دانش و مهارت‌ خود بهترین استفاده را کرده و وارد بازار کار شوند.
 

ارتباط با ما

  • ۰۲۱۷۷۰۱۰۷۷۱
  • info@chabokacademy.com
  • حکیمیه، بلوار بابائیان، ۱۵ متری امام حسین، بن بست شفاعت، پلاک ۱۵، طبقه ۷

دسترسی سریع

  • خانه
  • دوره ها
  • اخبار و مقالات
  • تماس با ما
  • خانه
  • دوره ها
  • اخبار و مقالات
  • تماس با ما

نماد‌ها و خبرنامه

۱۴۰۲© کلیه حقوق سایت نزد آکادمی چابک محفوظ است.

  • Afghanistan (+93)
  • Albania (+355)
  • Algeria (+213)
  • American Samoa (+1)
  • Andorra (+376)
  • Angola (+244)
  • Anguilla (+1)
  • Antigua (+1)
  • Argentina (+54)
  • Armenia (+374)
  • Aruba (+297)
  • Australia (+61)
  • Austria (+43)
  • Azerbaijan (+994)
  • Bahrain (+973)
  • Bangladesh (+880)
  • Barbados (+1)
  • Belarus (+375)
  • Belgium (+32)
  • Belize (+501)
  • Benin (+229)
  • Bermuda (+1)
  • Bhutan (+975)
  • Bolivia (+591)
  • Bonaire, Sint Eustatius and Saba (+599)
  • Bosnia and Herzegovina (+387)
  • Botswana (+267)
  • Brazil (+55)
  • British Indian Ocean Territory (+246)
  • British Virgin Islands (+1)
  • Brunei (+673)
  • Bulgaria (+359)
  • Burkina Faso (+226)
  • Burundi (+257)
  • Cambodia (+855)
  • Cameroon (+237)
  • Canada (+1)
  • Cape Verde (+238)
  • Cayman Islands (+1)
  • Central African Republic (+236)
  • Chad (+235)
  • Chile (+56)
  • China (+86)
  • Colombia (+57)
  • Comoros (+269)
  • Cook Islands (+682)
  • Côte d'Ivoire (+225)
  • Costa Rica (+506)
  • Croatia (+385)
  • Cuba (+53)
  • Curaçao (+599)
  • Cyprus (+357)
  • Czech Republic (+420)
  • Democratic Republic of the Congo (+243)
  • Denmark (+45)
  • Djibouti (+253)
  • Dominica (+1)
  • Dominican Republic (+1)
  • Ecuador (+593)
  • Egypt (+20)
  • El Salvador (+503)
  • Equatorial Guinea (+240)
  • Eritrea (+291)
  • Estonia (+372)
  • Ethiopia (+251)
  • Falkland Islands (+500)
  • Faroe Islands (+298)
  • Federated States of Micronesia (+691)
  • Fiji (+679)
  • Finland (+358)
  • France (+33)
  • French Guiana (+594)
  • French Polynesia (+689)
  • Gabon (+241)
  • Georgia (+995)
  • Germany (+49)
  • Ghana (+233)
  • Gibraltar (+350)
  • Greece (+30)
  • Greenland (+299)
  • Grenada (+1)
  • Guadeloupe (+590)
  • Guam (+1)
  • Guatemala (+502)
  • Guernsey (+44)
  • Guinea (+224)
  • Guinea-Bissau (+245)
  • Guyana (+592)
  • Haiti (+509)
  • Honduras (+504)
  • Hong Kong (+852)
  • Hungary (+36)
  • Iceland (+354)
  • India (+91)
  • Indonesia (+62)
  • Iran (+98)
  • Iraq (+964)
  • Ireland (+353)
  • Isle Of Man (+44)
  • Israel (+972)
  • Italy (+39)
  • Jamaica (+1)
  • Japan (+81)
  • Jersey (+44)
  • Jordan (+962)
  • Kazakhstan (+7)
  • Kenya (+254)
  • Kiribati (+686)
  • Kuwait (+965)
  • Kyrgyzstan (+996)
  • Laos (+856)
  • Latvia (+371)
  • Lebanon (+961)
  • Lesotho (+266)
  • Liberia (+231)
  • Libya (+218)
  • Liechtenstein (+423)
  • Lithuania (+370)
  • Luxembourg (+352)
  • Macau (+853)
  • Macedonia (+389)
  • Madagascar (+261)
  • Malawi (+265)
  • Malaysia (+60)
  • Maldives (+960)
  • Mali (+223)
  • Malta (+356)
  • Marshall Islands (+692)
  • Martinique (+596)
  • Mauritania (+222)
  • Mauritius (+230)
  • Mayotte (+262)
  • Mexico (+52)
  • Moldova (+373)
  • Monaco (+377)
  • Mongolia (+976)
  • Montenegro (+382)
  • Montserrat (+1)
  • Morocco (+212)
  • Mozambique (+258)
  • Myanmar (+95)
  • Namibia (+264)
  • Nauru (+674)
  • Nepal (+977)
  • Netherlands (+31)
  • New Caledonia (+687)
  • New Zealand (+64)
  • Nicaragua (+505)
  • Niger (+227)
  • Nigeria (+234)
  • Niue (+683)
  • Norfolk Island (+672)
  • North Korea (+850)
  • Northern Mariana Islands (+1)
  • Norway (+47)
  • Oman (+968)
  • Pakistan (+92)
  • Palau (+680)
  • Palestine (+970)
  • Panama (+507)
  • Papua New Guinea (+675)
  • Paraguay (+595)
  • Peru (+51)
  • Philippines (+63)
  • Poland (+48)
  • Portugal (+351)
  • Puerto Rico (+1)
  • Qatar (+974)
  • Republic of the Congo (+242)
  • Romania (+40)
  • Reunion (+262)
  • Russia (+7)
  • Rwanda (+250)
  • Saint Helena (+290)
  • Saint Kitts and Nevis (+1)
  • Saint Pierre and Miquelon (+508)
  • Saint Vincent and the Grenadines (+1)
  • Samoa (+685)
  • San Marino (+378)
  • Sao Tome and Principe (+239)
  • Saudi Arabia (+966)
  • Senegal (+221)
  • Serbia (+381)
  • Seychelles (+248)
  • Sierra Leone (+232)
  • Singapore (+65)
  • Sint Maarten (+1)
  • Slovakia (+421)
  • Slovenia (+386)
  • Solomon Islands (+677)
  • Somalia (+252)
  • South Africa (+27)
  • South Korea (+82)
  • South Sudan (+211)
  • Spain (+34)
  • Sri Lanka (+94)
  • St. Lucia (+1)
  • Sudan (+249)
  • Suriname (+597)
  • Swaziland (+268)
  • Sweden (+46)
  • Switzerland (+41)
  • Syria (+963)
  • Taiwan (+886)
  • Tajikistan (+992)
  • Tanzania (+255)
  • Thailand (+66)
  • The Bahamas (+1)
  • The Gambia (+220)
  • Timor-Leste (+670)
  • Togo (+228)
  • Tokelau (+690)
  • Tonga (+676)
  • Trinidad and Tobago (+1)
  • Tunisia (+216)
  • Turkey (+90)
  • Turkmenistan (+993)
  • Turks and Caicos Islands (+1)
  • Tuvalu (+688)
  • U.S. Virgin Islands (+1)
  • Uganda (+256)
  • Ukraine (+380)
  • United Arab Emirates (+971)
  • United Kingdom (+44)
  • United States (+1)
  • Uruguay (+598)
  • Uzbekistan (+998)
  • Vanuatu (+678)
  • Venezuela (+58)
  • Vietnam (+84)
  • Wallis and Futuna (+681)
  • Western Sahara (+212)
  • Yemen (+967)
  • Zambia (+260)
  • Zimbabwe (+263)
ورود
با شماره موبایل
آیا هنوز عضو نشده اید؟ اکنون ثبت نام کنید
ثبت نام
قبلا عضو شده اید؟ اکنون وارد شوید
محافظت شده توسط