59 votes

Kotlin File vs Class. Quelle est la différence ?

Je viens de commencer à utiliser Kotlin et j'ai créé quelques activités en tant que fichiers Kotlin. Elles fonctionnent, mais je voudrais quand même savoir quelle est la différence entre la création d'un fichier et d'une classe.

60voto

yole Points 3628

La seule différence est que la création d'un fichier crée un fichier sans classe, et que la création d'une classe crée un fichier avec une classe. Vous pouvez ensuite ajouter d'autres classes au fichier, ou supprimer des classes, ou effectuer toute autre modification - le résultat final ne dépend pas de la façon dont le fichier a été créé.

0 votes

Ceci devrait être la réponse décente

45voto

taurelas Points 950

icon Classe Kotlin : Android Studio l'affiche sans extension si le fichier contient UNE SEULE classe.

Contrairement à Java, Kotlin vous permet de mettre certaines choses en dehors de la classe comme :

  • fonctions d'extension
  • constantes

Par conséquent, si vous ajoutez l'une des classes ci-dessus ou une autre classe au fichier, Android Studio le changera en "fichier Kotlin" :

icon avec l'extension .kt

En supprimant les éléments supplémentaires ci-dessus, le fichier apparaîtra à nouveau comme "Classe Kotlin".

0 votes

Donc, si je mets un private const val TAG = "MyActivity" en haut simplement pour les messages Log.d, cela transforme ma classe en un fichier. Je sais que ce n'est pas vraiment un problème, mais y a-t-il un meilleur endroit pour mettre cela ?

1 votes

Octopus IMO c'est le meilleur endroit pour le mettre si vous voulez une constante privée et statique. Vous limitez la portée au fichier de sorte qu'une classe à l'intérieur de ce fichier peut l'utiliser et c'est à peu près la même chose que private static String de Java.

1 votes

Donc, il faut l'ignorer et laisser AS se débrouiller !

6voto

korchix Points 56

Voici la réponse du fonctionnaire Documentation :

Si un fichier Kotlin contient une seule classe (potentiellement avec des classes connexes déclarations de haut niveau), son nom doit être le même que celui de la classe la classe, avec l'extension .kt ajoutée. Si un fichier contient plusieurs classes, ou uniquement des déclarations de haut niveau, choisissez un nom décrivant le contenu du fichier, et nommez le fichier en conséquence. Utilisez des bosse de chameau avec une première lettre en majuscule (par ex. ProcessDeclarations.kt).

Le nom du fichier doit décrire ce que fait le code contenu dans le fichier. Par conséquent, vous devez éviter d'utiliser des mots sans signification comme "Util" dans noms de fichiers.

Ainsi, un fichier peut, par exemple, ne contenir que des fonctions (auxiliaires) sans déclaration de classe.

2voto

user2734915 Points 19

Comme je peux le voir, le fichier Kotlin contient de nombreuses classes, mais une classe Kotlin n'a qu'une seule classe de ce nom, mais ce n'est qu'une observation.

1voto

FoAng Points 11

Oui, si vous définissez plus d'une classe, elle sera automatiquement convertie en fichier, sinon elle sera automatiquement convertie en classe. En général, je pense que si vous avez besoin de définir certaines variables ou méthodes qui peuvent être directement référencées, vous pouvez les mettre dans le fichier.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X