آموزش جاوا و اندروید

یادداشت های یک برنامه نویس معمولی

آموزش جاوا و اندروید

یادداشت های یک برنامه نویس معمولی

طبقه بندی موضوعی

تفاوت companion object و object(در سطح پکیج)

سه شنبه, ۱۴ ارديبهشت ۱۴۰۰، ۰۵:۰۵ ب.ظ

توی کاتلین مفهوم استاتیک مثل جاوا وجود نداره. با این حال یه سری امکاناتی برای معرفی فیلد و متدهای استاتیک در نظر گرفته شده است.

در هر کلاسی میشه companion object تعریف کرد و داخل بلاک آن فیلدها و متدهای استاتیک تعریف کرد.

class Book(
    private val name: String,
    private val price: Double
) {

    fun interduceBook() {

        println("$name is a book with $price price")
    }

    companion object {

        val color = "Blue"
        val writer = "Alber Kamoo"

    }

}

fun main() {
    println(Book.writer)
    println(Book.color)

    val book = Book("The Stranger", 40000.0)
    book.interduceBook()
}

 

object(در سطح پکیج)

در این حالت یک کلاس سینگلتون تعریف میشه. (به جای class از object استفاده میکنیم)

object Job {

    var jobTitle : String = ""
    var jobHour : Int = 0

    fun decribeYourJob(){
        println("my job is $jobTitle with $jobHour hours")
    }
}
fun main(args: Array<String>) {

    Job.jobTitle = "adnroid developer"
    Job.jobHour = 8
    Job.decribeYourJob()

}

هر بار این کلاس رو صدا کنیم همون نمونه ای که ساخته شده رو بهمون میده.

 

مقاله مدیوم در مورد dagger و فیلدهای استاتیک کلاس module در کاتلین توضیح داده

موافقین ۰ مخالفین ۰ ۰۰/۰۲/۱۴
میم دال

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی