Auf den ersten Blick ähnlich, unterscheiden sich die Sichtbarkeitskonzepte von Kotlin und Java doch in wichtigen Punkten. So ist der Default in Kotlin "public", in Java dagegen "package-private". Das gibt es in Kotlin nicht, denn Packages dienen in Kotlin nur der Organisation der Klassen und sind deshalb nicht relevant für die Sichtbarkeit. Den Modifikator "protected" gibt es in beiden Sprachen, jedoch mit unterschiedlicher Semantik. Neu in Kotlin ist der Sichtbarkeitsmodifikator "internal". Damit kann man die Sichtbarkeit auf ein Kotlin-Modul einschränken. Aber Vorsicht! Ein Modul in Kotlin ist etwas anderes als ein Modul in Java. Verwirrt?

In unserem Vortrag werden wir die Sichtbarkeitsmodifikatoren auseinanderdröseln, erklären und vergleichen. Seit JDK 9 gibt es mit der Einführung von Jigsaw ein Modulkonzept als Sprachfeature. Wir erklären die Integration von Jigsaw-Modulen in Kotlin und Java. Noch nicht verwirrt genug? Aus Kotlin heraus kann man Java-Code verwenden und andersherum. Wir erläutern, wie sich dabei die Sichtbarkeitskonzepte vertragen und auswirken.