درس 8 - سطح دسترسی ها در زبان کاتلین

 

آموزش سطح دسترسی ها در زبان کاتلین

 

آموزش دسترسی ها در زبان برنامه نویسی ( kotlin ) کاتلین

در این درس قراره درباره ی modifier ها در زبان کاتلین صحبت کنیم. منظور از modifier ها همان سطح دسترسی ها در زبان کاتلین به متغیرها ، متود ها و کلاس ها است.

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

 

دسترسی های Private در زبان برنامه نویسی کاتلین

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

بعنوان مثال یک پکیج private میتواند تنها درون آن فایل خاص قابل استفاده باشد.

یک کلاس یا یک interface بصورت private تنها از طریق data member های آن قابل دسترس است.

private class privateExample {
   private val i = 1
   private val doSomething() {
   }
}

در مثال بالا کلاس privateExample و متغیرهایی که تعریف شده است تنها در فایل جاری قابل دسترسی است.

 

دسترسی های Protected در زبان برنامه نویسی کاتلین

در زبان کاتلین یک نوع سطح دسترسی دیگری به نام Protected وجود دارد که فعلا در سطح بالایی مثلا در استفاده از پکیج ها در فایل قابل تعریف نیست.

یک کلاس یا یک interface از نوع protected تنها در زیرکلاس ها یا sub-class های خود قابل دسترسی هستند.

class A() {
   protected val i = 1
}
class B : A() {
   fun getValue() : Int {
      return i
   }
}

در مثال بالا متغیری به نام i بصورت protected تعریف شده است و تنها در درون زیر کلاس ها یا subclass قابل استفاده است.

 

دسترسی های Internal در زبان برنامه نویسی کاتلین

در زبان برنامه نویسی کاتلین یک نوع دسترسی به نام internal هست که تقریبا جدید است و توسط کاتلین معرفی شده است.

اگر چیزی بعنوان internal در زبان برنامه نویسی کاتلین تعریف شده باشد آن چیز باید داخل یا بصورت internal تعریف شده است.

اگر یک پکیج بصورت internal تعریف نشده باشد توسط ماژول هایی که در همان بخش پیاده سازی شده است قابل دسترس است.

یک کلاس یا interface از طریق کلاس هایی در دسترس است که در همان پکیج یا ماژول طبقه بندی شده باشد.

در مثال زیر نحوه ی پیاده سازی نوع internal در زبان کاتلین را میبینید.

class internalExample {
   internal val i = 1
   internal fun doSomething() {
   }
}

در مثال بالا یک متود هست به اسم doSomething و یک متغیر به صورت interlanl تعریف شده است.

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

 

دسترسی های public در زبان برنامه نویسی کاتلین

همانطور که از اسم این نوع مشخص است در زبان کاتلین تمام چیزهایی که بصورت public تعریف میشوند در هر کجایی قابل دسترس هستند.

اگر هیچ یک از نوع دسترسی ها در زبان کاتلین تعریف نشود کامپایلر زبان کاتلین بصورت پیشفرض public را در نظر میگیرد.

در مثال های بالا اگر یک جایی نوع دسترسی را تعریف نکردیم منظورمان این بوده که آن public است.

در مثال زیر نحوه ی استفاده کردن از public را مشاهده میکنید.

class publicExample {
   val i = 1
   fun doSomething() {
   }
}

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

 

اتمام درس.