Interface
درین بحش با Interface کاتلین آشنا خواهیم شد.
در Kotlin، این Interface دقیقاً شبیه جاوا 8 فعالیت می نماید، بدین مفهوم که میتوانند مشمول طراحی روال و همینطور اعلان طراحی اپلیکیشن در مشهد متدهای abstract باشند.
یک Interface میتواند به وسیله یک کلاس به خواسته استعمال از همت تعریفوتمجید گردیده آن طراحی گردد.
کلیدی “interface” برای تعریف و تمجید یک Interface در Kotlin همانگونه که در کد ذیل آرم داده گردیدهاست به کارگیری میگردد.
interface ExampleInterface {
var myVar: String // abstract property
fun absMethod() // abstract method
fun sayHello() = "Hello there" // method with default implementation
}
COPY
در نمونه بالا، ما یک Interface به اسم “ExampleInterface” ساخت کردهایم و در درون آن، تعدادی abstract properties و مشی را با هم داریم.
به تابعی با اسم () SayHello نگاه نمایید که یک سیاق implemented میباشد.
در نمونه پایین، Interface فوق را در یک کلاس طراحی خوا هیم کرد.
interface ExampleInterface {
var myVar: Int // abstract property
fun absMethod():String // abstract method
fun hello() {
println("Hello there, Welcome to manataz.Com!")
}
}
class InterfaceImp : ExampleInterface {
override var myVar: Int = 25
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())
}
COPY
خروجی :
My Variable Value is = 25
! Calling hello (): Hello there, Welcome to manataz.Com
Message from the Website– Happy Learning
همان گونه که پیش از این بیان شد، کاتلین از تعدادی وراثت هواخواهی نمی نماید، با این درحال حاضر، به عبارتی چیز را می اقتدار با طراحی بیش تر از دو Interface در یک مجال به دست آورد.
در نمونه تحت دو اینترفیس تولید میکنیم و بعداً هر دو اینترفیس را در یک کلاس طراحی میکنیم.
interface 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()
}
COPY
در نمونه بالا، دو Interface مثال A، B تولید کردهایم و در کلاسی به اسم “multipleInterfaceExample” دو اینترفیس که تا قبل از این اعلام گردیده بود را پیادهسازی کردهایم.
خروجی :
method of interface A
I am another Method from interface B
Modifiers در کاتلین
Kotlin visibility modifiers لغات کلیدی میباشند که امکان مشاهده کلاسها، شی ها، interface ، تولیدکنندهها، توابع و همینطور properties و Setters آن ها را گزینش مینمایند.
اگرچه اخذکنندهها مدام visibility یکسانی با properties داراهستند، براین اساس نمیتوانیم visibility آنان را تهیه و تنظیم کنیم.
Setters توابعی می باشند که برای تهیه مقادیر properties به کار گیری میگردند، در حالی که تحت عنوان گیرنده ، توابعی می باشند که برای خریداری نمودن مقادیر آن properties به کارگیری میشوند.
چهار visibility modifiers در Kotlin وجود دارااست که عبارتند از :
public
private
protected
internal
شرایط پیش فرض public میباشد.
این modifiers را میقدرت در جای های زیادی مانند هدر کلاس یا این که بادی متدها بهره مند شد.
بیایید به جزئیات این modifiers نگاه کنیم :
Public Modifier
از هرجا در فضای کاری پروژه قابل دسترسی میباشد.
در آحاد نمونههای قبل ما Modifier بیان نکردهایم، از این رو، تمامی آنها در محدوده همگانی میباشند.
در تحت مثالی برای فهم بیشتر طریق اعلان یک متغیر یا این که روال همگانی اورده شده میباشد.
class publicExample {
val i = 1
fun doSomething() {
}
}
COPY
در نمونه بالا، ما هیچ modifier را بیان نکرده ایم، به این ترتیب اسلوب و متغیری که در اینجا تمجید گردیدهاست، به صورت پیش فرض همگانی میباشند.
در صورتیکه چه نمونه بالا را می اقتدار با Public Modifier به صورت مصرح به طور ذیل نوشت :
public class publicExample {
public val i = 1
public fun doSomething() {
}
}
COPY
Private Modifier
کلاس ها، متدها، packages و بقیه properties را می اقتدار با یک Private Modifier ذکر کرد.
این Modifier دقیقاً معنای مخالف Public را دارااست که بدین مضمون میباشد که یک عضو سری فارغ محدوده آن قابل دسترسی وجود ندارد.
زمانی که هر چیزی تحت عنوان Private اعلام شد، میقدرت آن را صرفا در محدوده بلافصل خویش در دسترس قرار بخشید.
برای مثال، یک پکیج محرمانه میتواند در آن پوشه خاص قابل دسترسی باشد.
یک کلاس یا این که رابط محرمانه صرفا بوسیله اعضای داده آن قابل دسترسی میباشد.
private class privateExample {
private val i = 1
private val doSomething() {
}
COPY
در نمونه بالا، کلاس privateExample تنها از باطن به عبارتی پوشه منبع قابل دسترسی میباشد و متغیر i و اسلوب doSomething تنها از باطن کلاس privateExample قابل دسترسی میباشد.
نمونه :
open class A() {
private val i = 1
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()
b.printValue()
}
COPY
خروجی :
Inside doSomething
Value of i is 1
در اینجا ما نمیتوانیم به متغیر i در کلاس B دسترسی پیدا کنیم، چون تحت عنوان Private تعریفوتمجید گردیده است، بهاین معنا که میقدرت در باطن کلاس به آن دسترسی داشت و خیر مکان دیگری.
Interface
درین بحش با Interface کاتلین آشنا خواهیم شد.
در Kotlin، این Interface دقیقاً شبیه جاوا 8 فعالیت می نماید، بدین مفهوم که میتوانند مشمول طراحی روال و همینطور اعلان طراحی اپلیکیشن در مشهد متدهای abstract باشند.
یک Interface میتواند به وسیله یک کلاس به خواسته استعمال از همت تعریفوتمجید گردیده آن طراحی گردد.
کلیدی “interface” برای تعریف و تمجید یک Interface در Kotlin همانگونه که در کد ذیل آرم داده گردیدهاست به کارگیری میگردد.
interface ExampleInterface {
var myVar: String // abstract property
fun absMethod() // abstract method
fun sayHello() = "Hello there" // method with default implementation
}
COPY
در نمونه بالا، ما یک Interface به اسم “ExampleInterface” ساخت کردهایم و در درون آن، تعدادی abstract properties و مشی را با هم داریم.
به تابعی با اسم () SayHello نگاه نمایید که یک سیاق implemented میباشد.
در نمونه پایین، Interface فوق را در یک کلاس طراحی خوا هیم کرد.
interface ExampleInterface {
var myVar: Int // abstract property
fun absMethod():String // abstract method
fun hello() {
println("Hello there, Welcome to manataz.Com!")
}
}
class InterfaceImp : ExampleInterface {
override var myVar: Int = 25
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())
}
COPY
خروجی :
My Variable Value is = 25
! Calling hello (): Hello there, Welcome to manataz.Com
Message from the Website– Happy Learning
همان گونه که پیش از این بیان شد، کاتلین از تعدادی وراثت هواخواهی نمی نماید، با این درحال حاضر، به عبارتی چیز را می اقتدار با طراحی بیش تر از دو Interface در یک مجال به دست آورد.
در نمونه تحت دو اینترفیس تولید میکنیم و بعداً هر دو اینترفیس را در یک کلاس طراحی میکنیم.
interface 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()
}
COPY
در نمونه بالا، دو Interface مثال A، B تولید کردهایم و در کلاسی به اسم “multipleInterfaceExample” دو اینترفیس که تا قبل از این اعلام گردیده بود را پیادهسازی کردهایم.
خروجی :
method of interface A
I am another Method from interface B
Modifiers در کاتلین
Kotlin visibility modifiers لغات کلیدی میباشند که امکان مشاهده کلاسها، شی ها، interface ، تولیدکنندهها، توابع و همینطور properties و Setters آن ها را گزینش مینمایند.
اگرچه اخذکنندهها مدام visibility یکسانی با properties داراهستند، براین اساس نمیتوانیم visibility آنان را تهیه و تنظیم کنیم.
Setters توابعی می باشند که برای تهیه مقادیر properties به کار گیری میگردند، در حالی که تحت عنوان گیرنده ، توابعی می باشند که برای خریداری نمودن مقادیر آن properties به کارگیری میشوند.
چهار visibility modifiers در Kotlin وجود دارااست که عبارتند از :
public
private
protected
internal
شرایط پیش فرض public میباشد.
این modifiers را میقدرت در جای های زیادی مانند هدر کلاس یا این که بادی متدها بهره مند شد.
بیایید به جزئیات این modifiers نگاه کنیم :
Public Modifier
از هرجا در فضای کاری پروژه قابل دسترسی میباشد.
در آحاد نمونههای قبل ما Modifier بیان نکردهایم، از این رو، تمامی آنها در محدوده همگانی میباشند.
در تحت مثالی برای فهم بیشتر طریق اعلان یک متغیر یا این که روال همگانی اورده شده میباشد.
class publicExample {
val i = 1
fun doSomething() {
}
}
COPY
در نمونه بالا، ما هیچ modifier را بیان نکرده ایم، به این ترتیب اسلوب و متغیری که در اینجا تمجید گردیدهاست، به صورت پیش فرض همگانی میباشند.
در صورتیکه چه نمونه بالا را می اقتدار با Public Modifier به صورت مصرح به طور ذیل نوشت :
public class publicExample {
public val i = 1
public fun doSomething() {
}
}
COPY
Private Modifier
کلاس ها، متدها، packages و بقیه properties را می اقتدار با یک Private Modifier ذکر کرد.
این Modifier دقیقاً معنای مخالف Public را دارااست که بدین مضمون میباشد که یک عضو سری فارغ محدوده آن قابل دسترسی وجود ندارد.
زمانی که هر چیزی تحت عنوان Private اعلام شد، میقدرت آن را صرفا در محدوده بلافصل خویش در دسترس قرار بخشید.
برای مثال، یک پکیج محرمانه میتواند در آن پوشه خاص قابل دسترسی باشد.
یک کلاس یا این که رابط محرمانه صرفا بوسیله اعضای داده آن قابل دسترسی میباشد.
private class privateExample {
private val i = 1
private val doSomething() {
}
COPY
در نمونه بالا، کلاس privateExample تنها از باطن به عبارتی پوشه منبع قابل دسترسی میباشد و متغیر i و اسلوب doSomething تنها از باطن کلاس privateExample قابل دسترسی میباشد.
نمونه :
open class A() {
private val i = 1
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()
b.printValue()
}
COPY
خروجی :
Inside doSomething
Value of i is 1
در اینجا ما نمیتوانیم به متغیر i در کلاس B دسترسی پیدا کنیم، چون تحت عنوان Private تعریفوتمجید گردیده است، بهاین معنا که میقدرت در باطن کلاس به آن دسترسی داشت و خیر مکان دیگری.

معایب سبک ایده پردازی و فروش آن و درآمد از اندروید