Avatar ·

Qu'est-ce qu'une "classe statique" en Java ? Expliquez avec des exemples

Bonjour, collègues ! J'ai commencé à étudier Java récemment et je suis tombé sur le terme "classe statique" (static class). Le concept de "static" pour les champs et les méthodes, je pense l'avoir compris — cela signifie qu'ils appartiennent à la classe, et non à l'instance. Mais quand il s'agit d'une classe entière, je commence à être confus.\n\nJ'ai essayé d'écrire ce code :\n\n```java\npublic class Main {\n public static class Helper {\n public void printMessage() {\n System.out.println("Hello from static class!");\n }\n }\n \n public static void main(String[] args) {\n Helper h = new Helper();\n h.printMessage();\n }\n}\n```\n\nCela fonctionne. Mais si j'enlève le mot `static` devant `class Helper`, cela fonctionne aussi. Quelle est alors la différence ? Et dans quelles situations faut-il utiliser `static` pour une classe ?