Pourquoi le Static en Java ?
Résolu
ilhan94
-
ilhan94 -
ilhan94 -
Bonjour,
Je développe une application Java en mode console et j'ai du mal à expliquer certaines parties de mon propre code et sachant que je vais passer une épreuve dessus c'est pas top....
Alors voila je vous explique mes problemes:
1) lorsque je précise le chemin d'acces a mon fichier XML je tape
2)lorsque je déclare mes collections je tape
Il n'y a as d'erreurs de code tout marche sur des roulettes mais je suis incapable d'expliquer pourquoi le STATIC!!
[Help!!] c'est la galère!!
Je développe une application Java en mode console et j'ai du mal à expliquer certaines parties de mon propre code et sachant que je vais passer une épreuve dessus c'est pas top....
Alors voila je vous explique mes problemes:
1) lorsque je précise le chemin d'acces a mon fichier XML je tape
final static String PANNE_FILE = "./data/panne.xml"
2)lorsque je déclare mes collections je tape
static ArrayList<Panne> pannesList;
Il n'y a as d'erreurs de code tout marche sur des roulettes mais je suis incapable d'expliquer pourquoi le STATIC!!
[Help!!] c'est la galère!!
A voir également:
- Pourquoi le Static en Java ?
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
3 réponses
Le static prend son sens au sein d'une classe, sans la classe et ce que tu veux faire, il est impossible de dire pourquoi static est mieux que rien.
Pour une méthode, le mot-clé static, signifie qu'elle s'utilise sans objet de la classe, et qu'en particulier la méthode n'a pas accès à this qui n'a alors aucun sens.
Pour un objet, le mot-clé static garde le même sens d'appartenance à la classe, et pas à un objet précis, en fait c'est un objet commun à toutes les instances de la classe.
Dans ton cas :
PANNE_FILE est une constante définie pour toute la classe, tous les objets de la classe y ont accès. Tu peux, en particulier utiliser TaClasse.PANNE_FILE où TaClasse est le nom de la classe, mais en aucun cas un objet.
pannesList est une collection commune à toute la classe, cela signifie que peu importe qu'il y ait 1, 2, 150 ou 0 objet de la classe, cette liste existera toujours car elle appartient à la classe. Pareil tu peux l'utiliser avec TaClasse.pannesList, chaque objet de la classe va pouvoir de la classe va pouvoir la consulter, ou la modifier.
Remarque : en l'absence de mots-clés private, protected ou public, tous les objets du package ont accès à ces objets. Peut-être n'as-tu rien mis car tu ne sais pas t'en servir, mais il apparaît pourtant important de les spécifier selon ce que tu veux faire.
Ici je pense que PANNE_FILE devrait-être public, et pannesList protected...
Pour un objet, le mot-clé static garde le même sens d'appartenance à la classe, et pas à un objet précis, en fait c'est un objet commun à toutes les instances de la classe.
Dans ton cas :
PANNE_FILE est une constante définie pour toute la classe, tous les objets de la classe y ont accès. Tu peux, en particulier utiliser TaClasse.PANNE_FILE où TaClasse est le nom de la classe, mais en aucun cas un objet.
pannesList est une collection commune à toute la classe, cela signifie que peu importe qu'il y ait 1, 2, 150 ou 0 objet de la classe, cette liste existera toujours car elle appartient à la classe. Pareil tu peux l'utiliser avec TaClasse.pannesList, chaque objet de la classe va pouvoir de la classe va pouvoir la consulter, ou la modifier.
Remarque : en l'absence de mots-clés private, protected ou public, tous les objets du package ont accès à ces objets. Peut-être n'as-tu rien mis car tu ne sais pas t'en servir, mais il apparaît pourtant important de les spécifier selon ce que tu veux faire.
Ici je pense que PANNE_FILE devrait-être public, et pannesList protected...