مشخصات مقاله
-
659
-
0.0
-
2290
-
0
-
0
معرفی سازندهها در Kotlin
سازندهها در Kotlin
در این بخش میخواهیم به آموزش سازندهها در Kotlin بپردازیم. Kotlin از دو نوع سازنده بهره میبرد که یکی سازندهی اولیه و دیگری سازندهی ثانویه نامیده میشود. یک کلاس Kotlin میتواند یک سازندهی اولیه و یک یا چند سازندهی ثانویه داشته باشد. سازندهی جاوا متغیرهای عضو را مقداردهی اولیه میکند، این در حالی است که در Kotlin سازندهی اولیه به کلاس مقدار اولیه میدهد و کلاس ثانویه به کلاس اولیه کمک میکند تا منطقهای بیشتری را لحاظ کند. سازندهی اولیه را میتوان در سطح هدر کلاس اعلان کرد، مانند زیر:
class Person(val firstName: String, var age: Int) {
// class body
}
در مثال بالا، ما سازندهی اولیه را داخل پرانتز اعلان کردهایم. از میان این دو زمینه، first name اصطلاحاً read-only است چرا که بهصورت val اعلان شده است؛ این در حالی است که age را میتوان ویرایش کرد. در مثال زیر از سازندهی اولیه استفاده شده است.
fun main(args: Array< String>) {
val person1 = Person("TutorialsPoint.com", 15)
println("First Name = $ { person1.firstName}")
println("Age = $ { person1.age}")
}
class Person(val firstName: String, var age: Int) {
}
کد بالا بهصورت خودکار این دو متغیر را مقداردهی اولیه میکند و نتیجهی زیر در مرورگر نمایش داده میشود:
First Name = TutorialsPoint.com Age = 15
همانطور که قبلاً نیز اشاره شد با کمک Kotlin میتوان برای کلاس خود یک یا چند سازندهی ثانویه را ایجاد کرد. این سازندهی ثانویه با استفاده از واژهی کلیدی constructor ساخته میشود. اگر هر زمان که میخواهید بیش از یک سازنده را در Kotlin ایجاد کنید یا هر زمان که میخواهید در سازندهی اولیه منطق بیشتری را لحاظ کنید و نمیتوانید این کار را انجام دهید به این خاطر است که سازندهی اولیه ممکن است توسط کلاس دیگری فراخوانی شده باشد. به مثال زیر نگاهی بیندازید. در این مثال ما یک سازندهی ثانویه را ایجاد کردهایم و برای پیادهسازی آن از مثال بالا بهره گرفتهایم:
fun main(args: Array< String >) {
val HUman = HUman("TutorialsPoint.com", 25)
print("$ {HUman.message}"+"$ {HUman.firstName}"+
"Welcome to the example of Secondary constructor, Your Age is-$ {HUman.age}")
}
class HUman(val firstName: String, var age: Int) {
val message:String = "Hey!!!"
constructor(name: String, age:Int,message:String):this(name,age) {
}
}
به هر تعداد که بخواهید میتوانید سازندههای ثانویه را ایجاد کنید؛ اما تمامی این سازندهها باید بهصورت مستقیم یا غیرمستقیم سازندهی ثانویه را فراخوانی کنند.
نتیجهی کد بالا را میتوانید در ادامه مشاهده کنید:
Hey!!! TutorialsPoint.comWelcome to the example of Secondary constructor, Your Age is- 25