Sobes.tech
Middle

Ποια αντικείμενα γνωρίζετε στο Kotlin και πώς μεταγλωττίζονται;

sobes.tech AI

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

  • Κλάσεις δεδομένων: δημιουργούν αυτόματα equals(), hashCode(), toString(), copy() και άλλες χρήσιμες μεθόδους. Μεταγλωττίζονται σε κανονικές κλάσεις με υπερκαλυμμένες μεθόδους.
  • Enums: αντιπροσωπεύουν ένα σταθερό σύνολο σταθερών. Μεταγλωττίζονται σε κλάσεις με στατικά πεδία για κάθε στοιχείο.
  • Κλειστές κλάσεις: επιτρέπουν τον ορισμό περιορισμένης ιεραρχίας κλάσεων. Μεταγλωττίζονται σε κανονικές κλάσεις με ιδιωτικό κατασκευαστή και στατικά στιγμιότυπα για κάθε υποκλάση στο ίδιο αρχείο.
  • Αντικείμενα: Singleton αντικείμενα. Μεταγλωττίζονται σε μια κλάση με στατικό πεδίο στιγμιότυπου και στατικό αρχικοποιητή.

Παράδειγμα Object σε Kotlin:

object MySingleton {
    fun doSomething() {
        // Κάποια λογική
    }
}

Μεταγλώττιση σε Java:

public final class MySingleton {
    public static final MySingleton INSTANCE;

    private MySingleton() {
    }

    public final void doSomething() {
        // Κάποια λογική
    }

    static {
        INSTANCE = new MySingleton();
    }
}