در این درس قراره درباره ی یه موضوع جدید که در زبان برنامه نویسی کاتلین مطرح شده است بپردازیم که اسمش extention ها میباشد. با استفاده از extention ها ما قادر خواهیم بود تا به عملکرد متود ها چیزی اضافه کنیم یا حذف کنیم که این کار بدون ارث بری یا انجام هرگونه تغییری در کلاس اصلی اتفاق میوفتد.
extention ها بعنوان استاتیک تعریف و استفاده میشوند . extention ها مستقیما روی کلاس جاری هیچ تغییری اعمال نمیکند ولی یک تابع قابل صدا زدن ساخته میشود که با استفاده از نقطه صدا زده میشود.
Live Demo
class Alien {
var skills : String = "null"
fun printMySkills() {
print(skills)
}
}
fun main(args: Array<String>) {
var a1 = Alien()
a1.skills = "JAVA"
//a1.printMySkills()
var a2 = Alien()
a2.skills = "SQL"
//a2.printMySkills()
var a3 = Alien()
a3.skills = a1.addMySkills(a2)
a3.printMySkills()
}
fun Alien.addMySkills(a:Alien):String{
var a4 = Alien()
a4.skills = this.skills + " " +a.skills
return a4.skills
}
در مثال بالا ، ما در کلاس Alien هیچ متودی با نام addMySkills وجود ندارد ولی به هر حال ما میتوانیم این متود را در هر جایی بیرون از کلاس ایجاد کنیم و این معجزه ی extension ها در زبان برنامه نویسی کاتلین است.
کدهای مثال بالا در صورت اجرا نتیجه ی زیر را در بر خواهد داشت :
JAVA SQL
زبان کاتلین یک روش دیگری برای پیاده سازی مفهوم static جاوا دارد. این روش با استفاده از عبارت companion object قابل استفاده است.
با استفاده از این مکانیسم ، ما میتوانیم یک آبجکت از یک کلاس بسازیم و سپس فقط با اشاره به نام متود میتوانیم آنرا صدا بزنیم.
در مثال زیر نمونه ای از companion object در زبان کاتلین میبینیم :
Live Demo
fun main(args: Array<String>) {
println("Heyyy!!!"+A.show())
}
class A {
companion object {
fun show():String {
return("You are learning Kotlin from avasam")
}
}
}
نمونه کدهای کاتلین بالا نتیجه ی خروجی زیر را در پی خواهد داشت :
Heyyy!!! You are learning Kotlin from avasam
مثال بالا شبیه به مبحث static در زبان برنامه نویسی جاوا است ، در یک زمان واحد ما یک آبجکت از همان کلاس بعنوان یکی از اعضای همان کلاس میسازیم.
در حقیقت با این کار شما در حال گسترش یک شی از همان کلاس هستید تا از بعضی از توابع استفاده کنید.
اتمام درس
محصولات برگزیده مناسب شما
دوره ی آموزش برنامه نویسی اندروید با کاتلین (kotlin) پروژه محور کارگاه آموزشی کار با ریسایکلر ویو در زبان کاتلین دوره ی آموزش برنامه نویسی اندروید با جاوا و android-studio دوره ی آموزش ساخت مارکت اندرویدی مشابه کافه بازار با سورس کامل