Ποια αντικείμενα υπάρχουν στο Kotlin και πώς μεταγλωττίζονται;
sobes.tech AI
Απάντηση από AI
Τα αντικείμενα σε Kotlin χρησιμοποιούνται για τη δημιουργία singleton. Δηλώνονται με τη λέξη-κλειδί object.
object Singleton {
fun doSomething() {
println("Γειά από το singleton!")
}
}
Κατά τη μεταγλώττιση, το Kotlin αντικείμενο Singleton μετατρέπεται σε μια Java κλάση Singleton με ένα ιδιωτικό στατικό πεδίο INSTANCE και ένα στατικό μπλοκ αρχικοποίησης.
// Παράδειγμα γεννημένου κώδικα Java
public final class Singleton {
public static final Singleton INSTANCE; // Στατικό πεδίο για το μόνο αντίγραφο
public final void doSomething() { // Μέθοδος αντικειμένου
System.out.println("Γειά από το singleton!");
}
private Singleton() { // Ιδιωτικός κατασκευαστής
}
static { // Στατικό μπλοκ αρχικοποίησης
INSTANCE = new Singleton(); // Δημιουργία του μόνο αντιγράφου
}
}
Όταν καλείται η μέθοδος του αντικειμένου Singleton.doSomething() σε Kotlin, ο μεταγλωττιστής δημιουργεί μια κλήση στη στατική μέθοδο Singleton.INSTANCE.doSomething() σε Java.
Εκτός από τα κανονικά αντικείμενα, στο Kotlin υπάρχουν:
-
Συνοδευτικό αντικείμενο (
companion object): Χρησιμοποιείται για τον ορισμό στατικών μελών μέσα σε μια κλάση. Η πρόσβαση γίνεται μέσω του ονόματος της κλάσης. Κάθε κλάση μπορεί να έχει το πολύ ένα συνοδευτικό αντικείμενο.class MyClass { companion object { const val MY_CONSTANT = "some value" fun create(): MyClass { return MyClass() } } }Μεταγλωττίζεται σε στατικά μέλη της κλάσης σε Java.
-
Έκφραση αντικειμένου (
object expression): Χρησιμοποιείται για τη δημιουργία ανώνυμων αντικειμένων (όπως οι ανώνυμες κλάσεις σε Java).val listener = object : MyInterface { override fun onClick() { println("Κλίκ!") } }Μεταγλωττίζεται σε μια ανώνυμη κλάση σε Java.