Attribut d'une classe dans autre classe(java)
Bonjour, j'aimerais clarifier un point en java. Si l'on a :
- Class A {int a; int b;} // a et b sont des attributs de A de type int
- Class B {A c;} // c est un attribut de B de type A
Ce sont deux classes différentes sans notion d'héritage. Est-ce que je peux modifier les attributs (pour simplifier on considère que les classes sont public ou package) a et b de A dans la classe B ?
Je pense que oui mais le problème c'est que je ne vois pas comment l'écrire correctement pour le faire. Ce que je pense pour modifier l'attribut a de A dans B en lui affectant 2. J'écris :
c.a = 2; j'hésite aussi avec, A.a=2;
Merci de votre aide. Si quelqu'un a un document ou un exemple bien précis de comment c'est faisable, je suis aussi intéressé.
- Class A {int a; int b;} // a et b sont des attributs de A de type int
- Class B {A c;} // c est un attribut de B de type A
Ce sont deux classes différentes sans notion d'héritage. Est-ce que je peux modifier les attributs (pour simplifier on considère que les classes sont public ou package) a et b de A dans la classe B ?
Je pense que oui mais le problème c'est que je ne vois pas comment l'écrire correctement pour le faire. Ce que je pense pour modifier l'attribut a de A dans B en lui affectant 2. J'écris :
c.a = 2; j'hésite aussi avec, A.a=2;
Merci de votre aide. Si quelqu'un a un document ou un exemple bien précis de comment c'est faisable, je suis aussi intéressé.
Réponses
-
Si a est un argument "private" ou "protected", tu dois créer une méthode setter, pour l'argument a, ça va avoir la forme
public void set_a(Integer new_a) { this.a = new_a; }
ensuite dans B tu appelles la méthode set_a sur c, en faisantc.set_a(nouveaul_valeur_de_a)
Si a est un argument "public", tu peux soit créer un setter d’exactement la même manière ce qui complique inutilement le code, soit faire c.a = 2. Mais tu ne peux sûrement pas faire A.a = 2 car si une telle notation existait elle signifierait que tu veux modifier l'argument a de tout les objets de type A, (car a priori y a pas que l'objet c qui est de class A). -
merci pour la réponse et les précisions gogor!
Connectez-vous ou Inscrivez-vous pour répondre.
Bonjour!
Catégories
- 163.2K Toutes les catégories
- 9 Collège/Lycée
- 21.9K Algèbre
- 37.1K Analyse
- 6.2K Arithmétique
- 53 Catégories et structures
- 1K Combinatoire et Graphes
- 11 Sciences des données
- 5K Concours et Examens
- 11 CultureMath
- 47 Enseignement à distance
- 2.9K Fondements et Logique
- 10.3K Géométrie
- 63 Géométrie différentielle
- 1.1K Histoire des Mathématiques
- 68 Informatique théorique
- 3.8K LaTeX
- 39K Les-mathématiques
- 3.5K Livres, articles, revues, (...)
- 2.7K Logiciels pour les mathématiques
- 24 Mathématiques et finance
- 313 Mathématiques et Physique
- 4.9K Mathématiques et Société
- 3.3K Pédagogie, enseignement, orientation
- 10K Probabilités, théorie de la mesure
- 773 Shtam
- 4.2K Statistiques
- 3.7K Topologie
- 1.4K Vie du Forum et de ses membres