Partage
  • Partager sur Facebook
  • Partager sur Twitter

Envoyer des données d'une classe à l'autre

    15 février 2020 à 17:46:44

    Bonjour à tous, je souhaite savoir par quel moyen on pouvait  envoyer des informations générés par des méthodes d'une classes filles et inversement.

    Pour envoyer des informations d'une classe mère à un classe, si j'ai bien compris, il faudrait que j'utilise "super(getMethode());" et pour l'inverse je ne vois pas du tout.

    Merci d'avance :D

    • Partager sur Facebook
    • Partager sur Twitter
      17 février 2020 à 13:35:10

      Le mot-clé \(super\) sert à appeler les propriétés ou méthodes de la classe mère à partir d'une classe fille.

      L'inverse n'existe pas, parce que la classe mère ne connaît pas ce qu'il y a dans la classe fille.
      Par contre, quand tu appelles une méthode non privée, que ce soit depuis la classe mère ou la classe fille, c'est par défaut celle de la classe fille qui s'exécute.

      Plus d'infos :

      Si tu donnes un exemple de ce qui te tracasse, on pourra sûrement aller plus loin dans les explications.

      • Partager sur Facebook
      • Partager sur Twitter
        20 février 2020 à 15:10:27

        J'aimerai faire une classe année qui est une sorte de timer qui renvoie à une classe Information l'année sur laquelle on se situe et cette classe information a deux classe filles qui lisent des csv et renvoient différentes infos selon l'année.

        (Je suis désolée si ce n'est pas assez claire)

        • Partager sur Facebook
        • Partager sur Twitter
          20 février 2020 à 15:42:36

          Peux-tu poster le code de ta classe Information et des deux classes filles ?

          • Partager sur Facebook
          • Partager sur Twitter
            20 février 2020 à 21:27:38

            Voila les classe que j'ai;

            Classe Chrono:

            package temporality;
            
            import java.io.BufferedReader;
            import java.io.FileReader;
            import java.io.IOException;
            import java.util.ArrayList;
            import java.util.Iterator;
            
            public class Chronos {
            	private static long debut = -1598000;
            	private static long fin = 2019;
            	private long annee;
            	
            	public void init() {
            		annee = debut;
            	}
            	public void increment() {
            		annee++;
            	}
            	public long getAnnee() {
            		return annee;
            	}
            }

            -
            Edité par LeefaaLee 15 avril 2020 à 18:12:04

            • Partager sur Facebook
            • Partager sur Twitter
              21 février 2020 à 9:43:17

              Première remarque : dans ton code Tribes n'est pas une classe fille de Information (il n'y a pas le mot-clé "extends").

              Deuxième remarque : sur le principe, Tribes n'a aucune raison d'être une classe fille de Information puisqu'elle ne représente pas du tout une implémentation particulière de Information.
              D'ailleurs Information gère des objets de type Tribes, Natural et Human, et peut récupérer dedans les données qu'elle veut, quand elle veut.

              Troisième remarque : je ne vois aucune communication entre Information et Tribes, ni dans un sens ni dans l'autre.

              Conclusion : tu te poses des questions là où il n'y a pas besoin de s'en poser.
              Si tu veux que Information récupère des données de Tribes, il suffit qu'elle appelle les méthodes getLieu(), getRegime(), etc, sur la variable tribe.

              • Partager sur Facebook
              • Partager sur Twitter

              Envoyer des données d'une classe à l'autre

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown