Classes en Java
Une classe est un type nommé que vous déclarez dans un fichier .java. Placez public class Badge dans un fichier nommé Badge.java. À l'intérieur de ce type, écrivez une courte méthode static show qui affiche ready. Dans un second fichier nommé Desk.java, placez public class Desk avec un main qui appelle Badge.show();. Compilez les deux fichiers, puis lancez java Desk. L'écran doit montrer une ligne : ready. Vous ne comptez pas à rebours avec la récursivité ici. Vous nommez un type dans son propre fichier et demandez à la méthode de ce type d'afficher. Ce second type nommé — une classe qui n'est pas seulement le fichier qui démarre — est ce que cette page enseigne.
Le type vit dans son propre fichier
Jusqu'aux pages sur les méthodes, presque chaque démo gardait main et les méthodes d'aide dans une seule public class. Cela fonctionne encore. Cette page ajoute volontairement une seconde public class. Badge est un nom de type. Il n'a pas besoin d'être le programme qui démarre. Desk est le programme qui démarre. Chaque public class se trouve dans un fichier dont le nom correspond exactement au nom de la classe, y compris les majuscules.
Créez d'abord Badge.java. La première ligne du type est public class Badge. N'écrivez pas public class Desk dans ce fichier. Ne laissez pas ici un ancien nom de classe Ladder ou Gate. Le compilateur lie le nom de la public class au nom du fichier. Si le fichier est Badge.java et que la ligne dit public class Ladder, javac refuse.
À l'intérieur des accolades de Badge, écrivez static void show(). Le corps est un affichage : System.out.println("ready");. Gardez void sur cette page. La méthode ne renvoie pas un nombre. Elle écrit seulement un mot. Il n'y a pas de main dans Badge.java sur cette page. C'est voulu. Une classe peut contenir des méthodes sans être la classe de démarrage.
Enregistrez Badge.java avant de compiler. Le premier programme encadré est ce fichier seul.
public class Badge {
static void show() {
System.out.println("ready");
}
}
Desk démarre ; Badge affiche
Créez un second fichier dans le même dossier : Desk.java. Sa ligne public class est public class Desk. Dans main, écrivez un appel : Badge.show();. Cet appel nomme le type Badge, un point, puis la méthode show. Vous n'écrivez pas seulement show(); dans Desk sauf si show vit aussi dans Desk. Sur cette page show appartient à Badge, donc l'appel porte le nom du type.
public class Desk {
public static void main(String[] args) {
Badge.show();
}
}
Les deux fichiers doivent être dans le même dossier pour que javac les voie ensemble. Depuis ce dossier, lancez javac Badge.java Desk.java. Vous pouvez aussi compiler d'abord Badge.java puis Desk.java ; les deux ordres fonctionnent quand les fichiers sont complets. Quand parenthèses, accolades et points-virgules correspondent, javac n'écrit aucune ligne de son côté. Puis lancez java Desk — pas java Desk.java, et pas java Badge. Enlevez la fin .java de la commande de lancement. Démarrez la classe qui contient main. Les deux mêmes genres de commandes fonctionnent sous Windows et macOS.
Le programme doit afficher une ligne et s'arrêter : ready. Il ne doit pas attendre que vous tapiez. Si le terminal attend une entrée clavier, un appel nextLine d'un ancien exercice est encore dans un fichier. Supprimez-le et gardez Badge.show(); dans Desk plus la méthode show dans Badge.
Parcourez l'exécution une fois. Java démarre à Desk.main. L'appel Badge.show() entre dans la méthode du type Badge. Cette méthode affiche ready et revient. Puis Desk se termine. Le mot à l'écran vient de Badge, pas d'un println écrit dans Desk lui-même. Cette séparation est le point : une classe démarre le programme ; une autre classe possède l'aide.
Le nom de fichier et public class doivent correspondre
Lisez l'appariement une fois dans un petit tableau. Chaque public class possède un nom de fichier.
📊 file, public class, role
| Fichier | public class | Rôle sur cette page |
|---|---|---|
Badge.java |
Badge |
type qui contient show |
Desk.java |
Desk |
programme qui contient main |
Si vous renommez le fichier en badge.java avec un b minuscule alors que la ligne dit encore public class Badge, certains systèmes traitent l'écart comme une erreur. Gardez le B majuscule aux deux endroits dans cette forme débutant. Si vous mettez public class Badge et public class Desk dans le même fichier, javac refuse : une public class par fichier. Les classes d'aide private dans le même fichier attendent des cours plus tard. Ici vous gardez deux fichiers public.
Une confusion fréquente est de lancer java Badge parce que vous venez d'écrire Badge.java. Cette classe n'a pas de main sur cette page, donc le lancement échoue. Lancez java Desk. Une autre confusion est d'écrire show(); dans Desk sans le préfixe Badge. quand show n'existe que sur Badge. Le compilateur cherche alors show dans Desk et ne le trouve pas.
Des démos de récursivité restantes peuvent embrouiller le dossier. Un fichier encore nommé Ladder.java avec down(3) est un autre programme. Gardez le dossier de cette leçon centré sur Badge.java et Desk.java pendant que vous apprenez la forme à deux fichiers. Vous n'avez pas besoin de down ici.
Compilez d'abord le type, puis le démarreur
Vous pouvez pratiquer l'étape de compilation en plus petits morceaux. Compilez d'abord seulement le type : javac Badge.java. Cette commande vérifie Badge même si rien n'a encore démarré. Un fichier de classe peut compiler sans main. Puis compilez le démarreur : javac Desk.java. Si Badge est déjà compilé dans le même dossier, Desk peut résoudre le nom Badge dans l'appel. Enfin lancez java Desk et confirmez la seule ligne ready.
Si javac Desk.java dit qu'il ne trouve pas le symbole Badge, vérifiez trois choses. Le dossier doit contenir Badge.java ou la classe compilée Badge à côté de Desk.java. L'appel doit écrire Badge avec les mêmes majuscules que le type. Le nom de méthode après le point doit être show, comme l'en-tête dans Badge.
Écrire System.out.println("Badge"); dans Desk affiche le mot Badge. Cela n'appelle pas la méthode du type. Gardez Badge.show(); quand vous voulez l'affichage qui vit dans Badge.
Ce que cette page ne fait pas encore
Cette page n'écrit pas new Badge(). Créer un objet à partir d'une classe est la page suivante. Ici l'appel est Badge.show() — une méthode static sur le nom du type lui-même. Vous ne stockez pas encore de champs sur un badge. Les champs attendent une page plus loin dans ce module. Le travail maintenant est seulement le type nommé dans son propre fichier, la ligne public class concordante, et un appel qui utilise ce nom de type.
Vous pouvez changer le mot affiché dans show en set et recompiler les deux fichiers (ou au moins Badge.java, puis relancer Desk). L'écran doit suivre la chaîne que vous avez mise dans Badge. Desk garde le même appel. Une autre façon de voir la séparation : modifier la méthode du type, garder l'appel du démarreur.
Avant objects
Vous pouvez déclarer public class Badge dans Badge.java, y mettre static void show(), et appeler Badge.show(); depuis Desk.main. Le nom de fichier et celui de public class correspondent. Compilez le type et le démarreur, puis lancez java Desk. L'écran montre la ligne affichée par show. Une classe est ce type nommé. La page suivante est objects, où vous construisez une valeur à partir d'une classe avec new.
🧠 Testez Vos Connaissances
Testez Vos Connaissances
Mettez-vous au défi avec ce quiz interactif et voyez à quel point vous comprenez le sujet
📝 Instructions
- Lisez chaque question attentivement
- Sélectionnez la meilleure réponse pour chaque question
- Vous pouvez refaire le quiz autant de fois que vous le souhaitez
- Votre progression sera affichée en haut