Sobes.tech
Junior — Middle

Είναι το αντικείμενο συνοδός κοινό για όλα τα δημιουργημένα στιγμιότυπα της κλάσης;

sobes.tech AI

Απάντηση από AI

Ναι, το companion object (συνοδευτικό αντικείμενο) στο Kotlin είναι κοινό για όλα τα στιγμιότυπα της κλάσης. Είναι ένας τύπος singleton που συνδέεται με την κλάση, όχι με ένα συγκεκριμένο στιγμιότυπο.

Το companion object επιτρέπει τον ορισμό συναρτήσεων και ιδιοτήτων που μπορούν να καλούνται χωρίς να δημιουργηθεί ένα στιγμιότυπο της κλάσης, παρόμοια με τις στατικές μεθόδους και πεδία στην Java.

Παράδειγμα:

class MyClass {
    companion object {
        val sharedValue = 42
        fun printValue() {
            println("Κοινή τιμή: $sharedValue")
        }
    }
}

fun main() {
    println(MyClass.sharedValue) // 42
    MyClass.printValue()        // Κοινή τιμή: 42
}

Εδώ, το sharedValue και το printValue είναι κοινά για όλα τα στιγμιότυπα της MyClass.