Attribut static
Chekchak
Messages postés
29
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour , j'essaies d'apprendre a programmer en java dernièrement et je n'arrive pas a trouver sur google la reponse a ma question :
quand on declare un attribut static pour une class, je sais que cet attribut est le meme pour tout les objet de cette class , mais est il modifiable ?
si on a une class A avec un attribut static b
et dans le main on declare 3 objects X Y Z de type A
peut on modifier b ?
pour chaque object? ou une seule fois pour tout les object ? ou jamais?
and sorry for my bad french x)
quand on declare un attribut static pour une class, je sais que cet attribut est le meme pour tout les objet de cette class , mais est il modifiable ?
si on a une class A avec un attribut static b
et dans le main on declare 3 objects X Y Z de type A
peut on modifier b ?
pour chaque object? ou une seule fois pour tout les object ? ou jamais?
and sorry for my bad french x)
A voir également:
- Dans son restaurant, igor utilise une application pour gérer les réservations. dans le schéma (structure) de la base de données de l’application représenté ci-dessous : de quoi « telephone » est-il le nom ? de quoi « reservations » est-il le nom ? associez chaque terme avec un attribut, une donnée, un enregistrement, une table, une valeur ou une variable.
- Schéma téléphone oublié - Guide
- C'est quoi le cache d'une application - Guide
- Desinstaller une application sur windows - Guide
- Comment trouver le mot de passe wifi sur son téléphone - Guide
- Changer le son de notification d'une application - Guide
1 réponse
Bonjour
Quand tu veux accéder à b est ce que X.b ça marche? Non? C'est parce ce que b n'appartient pas à X, ni à Y ni à Z. Il a appartient à la classe, A.b
Même réponse
Là ça dépend s'il est en lecture seule pas moyen de le changer
pour chaque object?
Quand tu veux accéder à b est ce que X.b ça marche? Non? C'est parce ce que b n'appartient pas à X, ni à Y ni à Z. Il a appartient à la classe, A.b
ou une seule fois pour tout les object ?
Même réponse
ou jamais?
Là ça dépend s'il est en lecture seule pas moyen de le changer
"Quand tu veux accéder à b est ce que X.b ça marche?"
Ça affichera un warning à la compilation, mais oui c'est possible.
b appartient à la classe A, donc on devrait y accéder par A.b, cependant X, Y, Z étant des objets de A ils peuvent aussi accéder à A.b, mais c'est bien un seul et unique objet commun. (On peut aussi y accéder par les classes héritées et leurs objet, sous certaines conditions)
"Là ça dépend s'il est en lecture seule pas moyen de le changer"
Le mot clé seul n'empêche pas de modifier la valeur.
En revanche le mot clé pourrait empêcher d'affecter une nouvelle valeur à b (une nouvelle référence d'objet) mais ça n'interdirait pas d'en modifier l'état interne via une méthode de modificaton.
Remarque : La plupart de ces questions s'expérimentent facilement...
Remarque avancée : Une classe en Java étant elle même un objet, on peut lui appliquer certaines méthodes et par exemple faire sauter le mot clé final de la variable à l'exécution pour pouvoir lui réaffecter une nouvelle valeur bien que cela soit interdit à la compilation. Donc on peut toujours modifier une variable ;-)
Pour le reste de ta réponse, je te suis, je n'ai pas développer car il y a des subtilité que je en maitrise pas.
Si, il existe, mais il n'est pas spécifique à l'objet X.
De plus, il est impossible de créer un attribut b supplémentaire qui ne serait pas static, car il aurait le même nom que le b static de A.
"on peut écrie GetB qui retourne A.b et qui s'utilise X.GetB()"
On peut, mais on peut aussi retourner b directement, sans préciser que c'est A.b
Et dans le même ordre d'idée, si la méthode est static, X pourra quand même l'utiliser lui même sans avoir à faire un A.GetB (mais toujours avec un warning).