Travailler avec des fichiers
Fait partie de la section Programmation orientée objet du Journey Kotlin de Coddy. Leçon 1 sur 57.
Les vrais programmes sont répartis dans plusieurs fichiers. Tous les fichiers .kt d’un programme Kotlin sont compilés ensemble, de sorte qu’une fonction ou une classe déclarée dans un fichier peut être utilisée dans n’importe quel autre fichier du même package sans import :
// Greeting.kt
fun greeting(name: String) = "Hello, $name!"
// Main.kt
fun main() {
println(greeting("Ada"))
}L’exécution de ce programme affiche Hello, Ada! : main dans Main.kt appelle la fonction qui se trouve dans Greeting.kt.
Un fichier Kotlin ne contient que des déclarations : des classes, des fonctions et des propriétés. Les instructions telles que println(...) doivent se trouver à l’intérieur d’une fonction. Le programme démarre avec fun main(), qui se trouve généralement dans Main.kt :
// Greeting.kt
fun greeting(name: String) = "Hello, $name!"
// println("hi") // erreur : les instructions doivent être à l'intérieur d'une fonction
// Main.kt
fun main() {
val name = readLine() ?: "friend"
println(greeting(name))
}La structure habituelle consiste à avoir une classe par fichier, nommée d’après la classe : Dog.kt contient Dog, Account.kt contient Account. Dans les exercices de cette section, votre code va dans ces fichiers et Main.kt contient le code d’entrée/sortie fourni, que vous ne pouvez généralement pas modifier. L’éditeur affiche chaque fichier sous forme d’onglet.
Dog.kt // class Dog(...) { ... }
Account.kt // class Account { ... }
Main.kt // fun main(): lit l'entrée et affiche les résultatsLa visibilité s’applique également aux fichiers. Une déclaration de niveau supérieur marquée private n’est visible qu’à l’intérieur de son propre fichier, tandis que la valeur par défaut, public, la rend visible dans tous les fichiers :
// Secret.kt
private const val SALT = "x7" // seul ce fichier peut le voir
fun hashed(s: String) = s + SALT
// Main.kt
fun main() {
println(hashed("pw")) // ok : hashed est public
// println(SALT) // erreur : SALT est privé dans Secret.kt
}Défi
FacileLe programme comporte deux fichiers. main dans Main.kt lit les noms et affiche le résultat de greeting(name). Complétez greeting dans Greeting.kt afin qu’il renvoie Hello, Ada! pour le nom Ada, ou Hello, friend! lorsque le nom est vide.
Votre code doit se trouver dans Greeting.kt. Main.kt contient le code d’entrée/sortie fourni et ne peut pas être modifié.
Essayez vous-même
fun main() {
// Code d'entrée/sortie fourni : gardez-le tel quel
val input = generateSequence(::readLine).toList()
for (name in input) println(greeting(name))
}
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Programmation orientée objet
1Classes et objets
Travailler avec des fichiersDéfinir des classesConstructeurs primairesBlocs init et validationConstructeurs secondairesRécapitulatif - Carte de bibliothèque4Héritage
Classes ouvertes et sous-classesRedéfinition des membressuper et constructeursClasses abstraitesRécapitulatif – Annuaire du personnel2Propriétés et encapsulation
Accesseurs personnalisésModificateurs de visibilitéSetters privéslazy et lateinitRécapitulatif - Compte bancaire5Interfaces
Déclarer des interfacesMéthodes par défautInterfaces multiplesInterfaces en tant que typesRécapitulatif - Méthodes de paiement8Génériques
Fonctions génériquesClasses génériquesContraintes de typeVariance avec in et outRécapitulatif - File de priorité11Projet : Gestion de bibliothèque
Livres et membresEmprunter des livresEntraînez-vous par vous-même : Playground Kotlin