واسط
دراین نصیب درخصوص واسط در کاتلین مشاجره میکنیم. در کاتلین، واسط دقیقا مثل جاوا8 شغل می نماید، که یعنی میتوانند اجرا اسلوب و همچنین اعلام سیاق های انتزاعی را مشتمل بر شوند. واسط میتواند به وسیله یک طبقه برای به کارگیری از کاربرد های تعریف و تمجید گردیده اش مصرف شود. ما در نصیب 6 ( طبقه ی درونی سوای اسم) مثالی برای واسط ارائه کرده ایم. درین نصیب بیشتر در موردش خاطر خوا هیم گرفت. از کلیدواژه ی “interface” برای تعریف و تمجید یک واسط در کاتلین استعمال میشود، طراحی اپلیکیشن در مشهد مانند کد های ذیل.
interface ExampleInterface {
var myVar: String // abstract property
fun absMethod() // abstract method
fun sayHello() = "Hello there" // method with default implementation
}
در نمونه بالا واسطی به اسم “ExampleInterface” ساخته ایم و باطن آن دو خواص و سیاق انتزاعی داریم . به کارکرد با اسم “sayHello()” نگاه فرمایید. که یک طرز جاری ساختن شدهاست.
در نمونه پایین، ما واسط بالا را در یک طبقه انجام میکنیم.
interface ExampleInterface {
var myVar: Int // abstract property
fun absMethod():String // abstract method
fun hello() {
println("Hello there, Welcome to TutorialsPoint.Com!")
}
}
class InterfaceImp : ExampleInterface {
override var myVar: Int = ۲۵
override fun absMethod() = "Happy Learning "
}
fun main(args: Array) {
val obj = InterfaceImp()
println("My Variable Value is = ${obj.myVar}")
print("Calling hello(): ")
obj.hello()
print("Message from the Website-- ")
println(obj.absMethod())
}
کد های بالا خروجی پایین را در مرورگر ارائه میدهند.
Calling hello(): Hello there, Welcome to TutorialsPoint.Com!
Message from the Website– Happy Learning
همان طور که تا قبل از این گفته شد، کاتلین توارث بیش تر از یک کدام از را امان نمی نماید، البته فیض ای شبیه قابل اخذ میباشد در صورتی بیشتر از دو واسط در یک مجال ایفا کنیم.
در نمونه پایین دو واسط میسازیم و درپی آنان را در یک طبقه جاری ساختن میکنیم.
A {
fun printMe() {
println(" method of interface A")
}
}
interface B {
fun printMeToo() {
println("I am another Method from interface B")
}
}
// implements two interfaces A and B
class multipleInterfaceExample: A, B
fun main(args: Array) {
val obj = multipleInterfaceExample()
obj.printMe()
obj.printMeToo()
}
در نمونه بالا دو واسط مثال ساخته ایمa , b و باطن طبقه ای به اسم “multipleInterfaceExample” دو واسط که پیش از این بیان شده بود را اعمال کرده ایم. کد های بالا خروجی تحت را در مرورگر به اکران خواهند گذاشت.
method of interface A
I am another Method from interface B
در اختیار گرفتن امکان رویت
دراین قسمت در زمینه ی تغییرو تحول دهنده های گوناگون جان دار در لهجه کاتلین سخن میزنیم. تغییر تحول دهنده ی دسترسی برای توسعه و گسترش دهنده اپ گوشی در تشکیل داد نرم افزار (Access modifier ) برای محصور کردن به کارگیری از متغیر ها، اسلوب ها و طبقه ها گزینه استعمال در اپ میگردد. مانند دیگر لهجه های اپلیکیشن نویسی غرض گرا ، این تغییرو تحول دهنده در جاهای مختلفی مثل باطن سرپیام طبقه یا این که اعلام اسلوب قابل به کارگیری اند. چهار تغییرو تحول دهنده در کاتلین جانور اند.
۱. فردی
طبقه ها، روال ها، و بسته ها میتوانند با یک تغییرو تحول دهنده ی فردی اعلام شوند. وقتی که هر چیزی تحت عنوان فردی تلقی خواهد شد، در محدوده ی لحظه ای خویش قابل دسترسی خواهد بود. برا ی نمونه، یک بسته ی فردی در محدوده ی به عبارتی فولدر قابل دسترسی خواهد بود. یک طبقه یا این که واسط فردی یا این که قادر است فقط با اعضای داده و غیره اش در دسترسی باشد.
private class privateExample {
private val i = ۱
private val doSomething() {
}
}
در نمونه بالا طبقه ی “privateExample” و متغیر i هر دو در یک فولدر کاتلین قابل دسترسی خواهند بود، در حالی تا قبل از این آورده شده بود که تمامی ی آنها تحت عنوان فردی در بلوک اعلام، اعلام گردیده اند.
۲. مراقبت گردیده
نگهداری گردیده یک تغییر و تحول دهنده ی دسترسی برای فراگیری کاتلین میباشد، که در هم اکنون حاظر برای اعلام های سطح بالا مو جود وجود ندارد از جمله هر بسته ای نمی تواند نگهداری گردد. یک طبقه یا این که واسط نگهداری گردیده فقط برای طبقه های زیرین خویش قابل مشاهده میباشد.
class A() {
protected val i = ۱
}
class B : A() {
fun getValue() : Int {
return i
}
}
در نمونه بالا، متغیر i نگهداری گردیده اعلام گردیدهاست، در سود، تنها برای طبقه های زیرینش قابل مشاهده میباشد.
۳. درونی
درونی یک تغییر تحول دهنده نو میباشد که در کاتلین معرفی گردیدهاست. درصورتیکه چیزی تحت عنوان درونی نشان گذاری خواهد شد، آن موضوع ی مشخص و معلوم درون موضوع درونی خواهد بود. یک بسته ی درونی صرفا داخل ماژول قابل مشاهده میباشد که داخل آن اعمال می گردد. واسط طبقه ی درونی صرفا بوسیله بقیه طبقه های باطن به عبارتی بسته یا این که ماژول قابل مشاهده میباشد. در نمونه تحت، کیفیت اجرای یک سیاق درونی را خواهیم مشاهده کرد.
class internalExample {
internal val i = ۱
internal fun doSomething() {
}
}
در نمونه بالا، اسلوب با اسم “doSomething” مشخص و معلوم گردیده است و متغیر تحت عنوان درونی معرفی گردیدهاست، در فیض این دو قضیه صرفا درون بسته که به آنان مربوط میشوند قابل دسترسی اند.
۴. همگانی
تغییر و تحول دهنده ی همگانی از هر جا در فضای عمل پروژه قابل دسترسی میباشد. در صورتیکه هیچ تغییرو تحول دهنده ی دسترسی ای معلوم نشده باشد، به صورت پیش فرض در محدوده ی همگانی خواهد بود. در کل نمونه های قبل، هیچ سیرتکامل تغییرو تحول دهنده را اعلام نکرده ایم، در فیض همگی ی آنها در محدوده ی همگانی می باشند. در پایین مثالی برای شعور بیشتر این که چطور یک مشی یا این که متغیر همگانی اعلام کنیم اورده شده میباشد.
class publicExample {
val i = ۱
fun doSomething() {
}
}
در نمونه بالا، هیچ سیرتکامل تغییر و تحول دهنده ای مذکور نشده میباشد، در فیض همگی ی این سیاق ها و متغیر ها به صورت پیش فرض همگانی می باشند.
واسط
دراین نصیب درخصوص واسط در کاتلین مشاجره میکنیم. در کاتلین، واسط دقیقا مثل جاوا8 شغل می نماید، که یعنی میتوانند اجرا اسلوب و همچنین اعلام سیاق های انتزاعی را مشتمل بر شوند. واسط میتواند به وسیله یک طبقه برای به کارگیری از کاربرد های تعریف و تمجید گردیده اش مصرف شود. ما در نصیب 6 ( طبقه ی درونی سوای اسم) مثالی برای واسط ارائه کرده ایم. درین نصیب بیشتر در موردش خاطر خوا هیم گرفت. از کلیدواژه ی “interface” برای تعریف و تمجید یک واسط در کاتلین استعمال میشود، طراحی اپلیکیشن در مشهد مانند کد های ذیل.
interface ExampleInterface {
var myVar: String // abstract property
fun absMethod() // abstract method
fun sayHello() = "Hello there" // method with default implementation
}
در نمونه بالا واسطی به اسم “ExampleInterface” ساخته ایم و باطن آن دو خواص و سیاق انتزاعی داریم . به کارکرد با اسم “sayHello()” نگاه فرمایید. که یک طرز جاری ساختن شدهاست.
در نمونه پایین، ما واسط بالا را در یک طبقه انجام میکنیم.
interface ExampleInterface {
var myVar: Int // abstract property
fun absMethod():String // abstract method
fun hello() {
println("Hello there, Welcome to TutorialsPoint.Com!")
}
}
class InterfaceImp : ExampleInterface {
override var myVar: Int = ۲۵
override fun absMethod() = "Happy Learning "
}
fun main(args: Array) {
val obj = InterfaceImp()
println("My Variable Value is = ${obj.myVar}")
print("Calling hello(): ")
obj.hello()
print("Message from the Website-- ")
println(obj.absMethod())
}
کد های بالا خروجی پایین را در مرورگر ارائه میدهند.
Calling hello(): Hello there, Welcome to TutorialsPoint.Com!
Message from the Website– Happy Learning
همان طور که تا قبل از این گفته شد، کاتلین توارث بیش تر از یک کدام از را امان نمی نماید، البته فیض ای شبیه قابل اخذ میباشد در صورتی بیشتر از دو واسط در یک مجال ایفا کنیم.
در نمونه پایین دو واسط میسازیم و درپی آنان را در یک طبقه جاری ساختن میکنیم.
A {
fun printMe() {
println(" method of interface A")
}
}
interface B {
fun printMeToo() {
println("I am another Method from interface B")
}
}
// implements two interfaces A and B
class multipleInterfaceExample: A, B
fun main(args: Array) {
val obj = multipleInterfaceExample()
obj.printMe()
obj.printMeToo()
}
در نمونه بالا دو واسط مثال ساخته ایمa , b و باطن طبقه ای به اسم “multipleInterfaceExample” دو واسط که پیش از این بیان شده بود را اعمال کرده ایم. کد های بالا خروجی تحت را در مرورگر به اکران خواهند گذاشت.
method of interface A
I am another Method from interface B
در اختیار گرفتن امکان رویت
دراین قسمت در زمینه ی تغییرو تحول دهنده های گوناگون جان دار در لهجه کاتلین سخن میزنیم. تغییر تحول دهنده ی دسترسی برای توسعه و گسترش دهنده اپ گوشی در تشکیل داد نرم افزار (Access modifier ) برای محصور کردن به کارگیری از متغیر ها، اسلوب ها و طبقه ها گزینه استعمال در اپ میگردد. مانند دیگر لهجه های اپلیکیشن نویسی غرض گرا ، این تغییرو تحول دهنده در جاهای مختلفی مثل باطن سرپیام طبقه یا این که اعلام اسلوب قابل به کارگیری اند. چهار تغییرو تحول دهنده در کاتلین جانور اند.
۱. فردی
طبقه ها، روال ها، و بسته ها میتوانند با یک تغییرو تحول دهنده ی فردی اعلام شوند. وقتی که هر چیزی تحت عنوان فردی تلقی خواهد شد، در محدوده ی لحظه ای خویش قابل دسترسی خواهد بود. برا ی نمونه، یک بسته ی فردی در محدوده ی به عبارتی فولدر قابل دسترسی خواهد بود. یک طبقه یا این که واسط فردی یا این که قادر است فقط با اعضای داده و غیره اش در دسترسی باشد.
private class privateExample {
private val i = ۱
private val doSomething() {
}
}
در نمونه بالا طبقه ی “privateExample” و متغیر i هر دو در یک فولدر کاتلین قابل دسترسی خواهند بود، در حالی تا قبل از این آورده شده بود که تمامی ی آنها تحت عنوان فردی در بلوک اعلام، اعلام گردیده اند.
۲. مراقبت گردیده
نگهداری گردیده یک تغییر و تحول دهنده ی دسترسی برای فراگیری کاتلین میباشد، که در هم اکنون حاظر برای اعلام های سطح بالا مو جود وجود ندارد از جمله هر بسته ای نمی تواند نگهداری گردد. یک طبقه یا این که واسط نگهداری گردیده فقط برای طبقه های زیرین خویش قابل مشاهده میباشد.
class A() {
protected val i = ۱
}
class B : A() {
fun getValue() : Int {
return i
}
}
در نمونه بالا، متغیر i نگهداری گردیده اعلام گردیدهاست، در سود، تنها برای طبقه های زیرینش قابل مشاهده میباشد.
۳. درونی
درونی یک تغییر تحول دهنده نو میباشد که در کاتلین معرفی گردیدهاست. درصورتیکه چیزی تحت عنوان درونی نشان گذاری خواهد شد، آن موضوع ی مشخص و معلوم درون موضوع درونی خواهد بود. یک بسته ی درونی صرفا داخل ماژول قابل مشاهده میباشد که داخل آن اعمال می گردد. واسط طبقه ی درونی صرفا بوسیله بقیه طبقه های باطن به عبارتی بسته یا این که ماژول قابل مشاهده میباشد. در نمونه تحت، کیفیت اجرای یک سیاق درونی را خواهیم مشاهده کرد.
class internalExample {
internal val i = ۱
internal fun doSomething() {
}
}
در نمونه بالا، اسلوب با اسم “doSomething” مشخص و معلوم گردیده است و متغیر تحت عنوان درونی معرفی گردیدهاست، در فیض این دو قضیه صرفا درون بسته که به آنان مربوط میشوند قابل دسترسی اند.
۴. همگانی
تغییر و تحول دهنده ی همگانی از هر جا در فضای عمل پروژه قابل دسترسی میباشد. در صورتیکه هیچ تغییرو تحول دهنده ی دسترسی ای معلوم نشده باشد، به صورت پیش فرض در محدوده ی همگانی خواهد بود. در کل نمونه های قبل، هیچ سیرتکامل تغییرو تحول دهنده را اعلام نکرده ایم، در فیض همگی ی آنها در محدوده ی همگانی می باشند. در پایین مثالی برای شعور بیشتر این که چطور یک مشی یا این که متغیر همگانی اعلام کنیم اورده شده میباشد.
class publicExample {
val i = ۱
fun doSomething() {
}
}
در نمونه بالا، هیچ سیرتکامل تغییر و تحول دهنده ای مذکور نشده میباشد، در فیض همگی ی این سیاق ها و متغیر ها به صورت پیش فرض همگانی می باشند.

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