Protected Modifier
Protected یکیاز دیگر از Modifier های دسترسی برای Kotlin میباشد که فعلا برای اعلام سطح بالا در دسترس وجود ندارد، چون هیچ پکجی قابل مراقبت وجود ندارد.
یک کلاس یا این که رابط یا این که پراپرتی یا این که تابع حفظ گردیده برای خویش کلاس و تنها ذیل کلاسهای طراحی اپلیکیشن در مشهد آن قابل مشاهده میباشد.
package one;
class A() {
protected val i = 1
}
class B : A() {
fun getValue() : Int {
return i
}
}
COPY
در نمونه بالا، متغیر i تحت عنوان Protected اعلام گردیده است، به این ترتیب، صرفا برای خویش کلاس و تحت کلاس های آن قابل مشاهده میباشد.
نمونه :
open class A() {
protected val i = 1
protected fun doSomething(){
println("Inside doSomething" )
println("Value of i is $i" )
}
}
class B : A() {
fun printValue(){
doSomething()
println("Value of i is $i" )
}
}
fun main(args: Array) {
val a = A()
val b = B()
//a.doSomething()
b.printValue()
}
COPY
خروجی :
Inside doSomething
Value of i is 1
Value of i is 1
در اینجا ما نمیتوانیم () doSomething را حتی با استعمال از یک آبجکت از کلاس A فراخوانی کنیم، چون تحت عنوان Protected تعریفوتمجید گردیده است، بهاین معنا که صرفا در خویش کلاس یا این که در پایین کلاسهای آن قابل دسترسی میباشد.
Internal Modifier
Internal یک modifier تازه در Kotlin میباشد.
در حالتیکه هر چیزی تحت عنوان Internal آرم گذاری خواهد شد، فیلد خاص تحت عنوان فیلد Internal آرم گذاری میگردد.
یک پکیج Internal صرفا در درون ماژولی که زیر آن طراحی گردیده است قابل مشاهده میباشد.
یک رابط کلاس Internal صرفا به وسیله کلاس های دیگر مو جود در به عبارتی بسته یا این که ماژول قابل مشاهده میباشد.
در نمونه پایین شیوه طراحی یک روال Internal را خواهیم رویت کرد.
package one
internal class InternalExample {
}
class publicExample{
internal val i = 1
internal fun doSomething() {
}
}
COPY
در نمونه بالا، کلاس InternalExample تنها از باطن به عبارتی ماژول قابل دسترسی میباشد، به صورت شبیه متغیر i و تابع () doSomething نیز صرفا از درون به عبارتی ماژول قابل دسترسی میباشند، حتی درصورتیکه کلاس publicExample از هرجایی قابل دسترسی باشد، چون این کلاس به طور پیشفرض دارنده رویت کرد Public میباشد.
نمونه :
package com.manataz.modifiers
open class A() {
internal val i = 1
internal fun doSomething(){
println("Inside doSomething" )
println("Value of i is $i" )
}
}
class B : A() {
fun printValue(){
doSomething()
println("Value of i is $i" )
}
}
fun main(args: Array) {
val a = A()
val b = B()
a.doSomething()
b.printValue()
}
COPY
خروجی :
Inside doSomething
Value of i is 1
Inside doSomething
Value of i is 1
Value of i is 1
Extensions
اکستنشن های Kotlin بضاعت توسعه یک کلاس با عملکردهای نو را سوای طراحی معنا وراثت به وسیله یک کلاس یا این که با به کار گیری از الگوی پیاده سازی مانند Decorator مهیا می نمایند.
این پلاگین ها در اصلً برخی از عملکردها را در یک کلاس مو جود سوای پیشرفت کلاس اضافه می نمایند.
Extensions اذن میدهد تا توابع جدیدی را برای یک کلاس از یک کتابخانه فرد ثالث فارغ از تغییر و تحول کلاس بنویسید.
زیبایی توابع Extensions درین میباشد که می قدرت آنهارا به شیوه معمول فراخوانی کرد، انگار که متدهای کلاس اساسی می باشند و این توابع تازه را Extension Function می نامند.
به صورت شبیه، ما همینطور می توانیم extension properties را برای یک کلاس Kotlin جانور تمجید کنیم.
Protected Modifier
Protected یکیاز دیگر از Modifier های دسترسی برای Kotlin میباشد که فعلا برای اعلام سطح بالا در دسترس وجود ندارد، چون هیچ پکجی قابل مراقبت وجود ندارد.
یک کلاس یا این که رابط یا این که پراپرتی یا این که تابع حفظ گردیده برای خویش کلاس و تنها ذیل کلاسهای طراحی اپلیکیشن در مشهد آن قابل مشاهده میباشد.
package one;
class A() {
protected val i = 1
}
class B : A() {
fun getValue() : Int {
return i
}
}
COPY
در نمونه بالا، متغیر i تحت عنوان Protected اعلام گردیده است، به این ترتیب، صرفا برای خویش کلاس و تحت کلاس های آن قابل مشاهده میباشد.
نمونه :
open class A() {
protected val i = 1
protected fun doSomething(){
println("Inside doSomething" )
println("Value of i is $i" )
}
}
class B : A() {
fun printValue(){
doSomething()
println("Value of i is $i" )
}
}
fun main(args: Array) {
val a = A()
val b = B()
//a.doSomething()
b.printValue()
}
COPY
خروجی :
Inside doSomething
Value of i is 1
Value of i is 1
در اینجا ما نمیتوانیم () doSomething را حتی با استعمال از یک آبجکت از کلاس A فراخوانی کنیم، چون تحت عنوان Protected تعریفوتمجید گردیده است، بهاین معنا که صرفا در خویش کلاس یا این که در پایین کلاسهای آن قابل دسترسی میباشد.
Internal Modifier
Internal یک modifier تازه در Kotlin میباشد.
در حالتیکه هر چیزی تحت عنوان Internal آرم گذاری خواهد شد، فیلد خاص تحت عنوان فیلد Internal آرم گذاری میگردد.
یک پکیج Internal صرفا در درون ماژولی که زیر آن طراحی گردیده است قابل مشاهده میباشد.
یک رابط کلاس Internal صرفا به وسیله کلاس های دیگر مو جود در به عبارتی بسته یا این که ماژول قابل مشاهده میباشد.
در نمونه پایین شیوه طراحی یک روال Internal را خواهیم رویت کرد.
package one
internal class InternalExample {
}
class publicExample{
internal val i = 1
internal fun doSomething() {
}
}
COPY
در نمونه بالا، کلاس InternalExample تنها از باطن به عبارتی ماژول قابل دسترسی میباشد، به صورت شبیه متغیر i و تابع () doSomething نیز صرفا از درون به عبارتی ماژول قابل دسترسی میباشند، حتی درصورتیکه کلاس publicExample از هرجایی قابل دسترسی باشد، چون این کلاس به طور پیشفرض دارنده رویت کرد Public میباشد.
نمونه :
package com.manataz.modifiers
open class A() {
internal val i = 1
internal fun doSomething(){
println("Inside doSomething" )
println("Value of i is $i" )
}
}
class B : A() {
fun printValue(){
doSomething()
println("Value of i is $i" )
}
}
fun main(args: Array) {
val a = A()
val b = B()
a.doSomething()
b.printValue()
}
COPY
خروجی :
Inside doSomething
Value of i is 1
Inside doSomething
Value of i is 1
Value of i is 1
Extensions
اکستنشن های Kotlin بضاعت توسعه یک کلاس با عملکردهای نو را سوای طراحی معنا وراثت به وسیله یک کلاس یا این که با به کار گیری از الگوی پیاده سازی مانند Decorator مهیا می نمایند.
این پلاگین ها در اصلً برخی از عملکردها را در یک کلاس مو جود سوای پیشرفت کلاس اضافه می نمایند.
Extensions اذن میدهد تا توابع جدیدی را برای یک کلاس از یک کتابخانه فرد ثالث فارغ از تغییر و تحول کلاس بنویسید.
زیبایی توابع Extensions درین میباشد که می قدرت آنهارا به شیوه معمول فراخوانی کرد، انگار که متدهای کلاس اساسی می باشند و این توابع تازه را Extension Function می نامند.
به صورت شبیه، ما همینطور می توانیم extension properties را برای یک کلاس Kotlin جانور تمجید کنیم.

منزلت تبلیغ در حاصل گوگل