Arbeiten mit Dateien
Teil des Abschnitts Objektorientierte Programmierung der Kotlin-Journey von Coddy. Lektion 1 von 57.
Reale Programme sind auf mehrere Dateien aufgeteilt. Alle .kt-Dateien eines Kotlin-Programms werden gemeinsam kompiliert, sodass eine in einer Datei deklarierte Funktion oder Klasse in jeder anderen Datei desselben Pakets ohne Import verwendet werden kann:
// Greeting.kt
fun greeting(name: String) = "Hello, $name!"
// Main.kt
fun main() {
println(greeting("Ada"))
}Bei der Ausführung dieses Programms wird Hello, Ada! ausgegeben: main in Main.kt ruft die Funktion auf, die in Greeting.kt enthalten ist.
Eine Kotlin-Datei enthält ausschließlich Deklarationen: Klassen, Funktionen und Eigenschaften. Anweisungen wie println(...) müssen sich innerhalb einer Funktion befinden. Das Programm startet bei fun main(), das sich üblicherweise in Main.kt befindet:
// Greeting.kt
fun greeting(name: String) = "Hello, $name!"
// println("hi") // error: Anweisungen müssen innerhalb einer Funktion stehen
// Main.kt
fun main() {
val name = readLine() ?: "friend"
println(greeting(name))
}Das übliche Layout besteht aus einer Klasse pro Datei, die nach der Klasse benannt ist: Dog.kt enthält Dog, Account.kt enthält Account. In den Aufgaben dieses Abschnitts kommt dein Code in diese Dateien, und Main.kt enthält den vorgegebenen Ein-/Ausgabecode, den du normalerweise nicht bearbeiten kannst. Der Editor zeigt jede Datei als Tab an.
Dog.kt // class Dog(...) { ... }
Account.kt // class Account { ... }
Main.kt // fun main(): liest die Eingabe und gibt die Ergebnisse ausDie Sichtbarkeit gilt auch für Dateien. Eine als private gekennzeichnete Deklaration auf oberster Ebene ist nur innerhalb ihrer eigenen Datei sichtbar, während der Standardwert public sie in jeder Datei sichtbar macht:
// Secret.kt
private const val SALT = "x7" // nur diese Datei kann es sehen
fun hashed(s: String) = s + SALT
// Main.kt
fun main() {
println(hashed("pw")) // in Ordnung: hashed ist public
// println(SALT) // Fehler: SALT ist private in Secret.kt
}Aufgabe
EinfachDas Programm besteht aus zwei Dateien. main in Main.kt liest Namen ein und gibt das Ergebnis von greeting(name) aus. Vervollständige greeting in Greeting.kt, sodass für den Namen Ada Hello, Ada! zurückgegeben wird oder Hello, friend!, wenn der Name leer ist.
Dein Code gehört in Greeting.kt. Main.kt enthält den bereitgestellten Eingabe-/Ausgabecode und kann nicht bearbeitet werden.
Probier es selbst
fun main() {
// Bereitgestellter Ein-/Ausgabe-Code: belasse ihn wie er ist
val input = generateSequence(::readLine).toList()
for (name in input) println(greeting(name))
}
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Objektorientierte Programmierung
1Klassen und Objekte
Arbeiten mit DateienKlassen definierenPrimärkonstruktoreninit-Blöcke und ValidierungSekundärkonstruktorenRückblick – Bibliotheksausweis4Vererbung
Offene Klassen und UnterklassenÜberschreiben von Membernsuper und KonstruktorenAbstrakte KlassenRückblick – Mitarbeiterverzeichnis2Eigenschaften und Kapselung
Benutzerdefinierte ZugriffsmethodenSichtbarkeitsmodifikatorenPrivate Setterlazy und lateinitWiederholung – Bankkonto5Schnittstellen
Schnittstellen deklarierenStandardmethodenMehrere SchnittstellenSchnittstellen als TypenRückblick – Zahlungsmethoden8Generics
Generische FunktionenGenerische KlassenTypbeschränkungenVarianz mit in und outRückblick – Prioritätswarteschlange11Projekt: Bibliotheksverwaltung
Bücher und MitgliederBücher ausleihenÜbe selbstständig: Kotlin-Playground