Partage
  • Partager sur Facebook
  • Partager sur Twitter

[java] this, tuto de cysboy

    18 avril 2008 à 20:38:21

    salut

    j'ai une petite question :

    ici : http://www.siteduzero.com/tuto-3-11593 [...] te-objet.html
    chapitre : Travaillez avec votre objet : les méthodes

    j'ai testé le petit exemple de this mais cette fois ci sans mettre "this", et ça donné le meme resultat :

    public String decrisToi(){
    return "\t"+nomVille+" est une test de "+nomPays+", elle comporte : "+nbreHabitant+
    " => elle est donc de catégorie : "+categorie;
    }

    euh pourquoi ? normalement java ne va pas connaitre v.decristoi() puisque j'ai supprimé this qui définit l'objet qu'on traite non ?

    et une 2eme question :

    - dans l'heritage les variables d'un instance doivent etre appelé proteted pour les utiliser, mais cela pose un probléme : on peut faire v.nomVille="haha" dans la class main !!!! alors que normalement ils doivent etre protégés

    voila ++

    merci d'avance
    • Partager sur Facebook
    • Partager sur Twitter
      18 avril 2008 à 21:12:36

      T'as rien compris au this, ici this désigne l'objet sur lequel tu es, il a facultatif car le compilateur le rajoute tout seul. this est souvent utilisé lorsque dans une méthode une variable a le même nom qu'un attributs :
      public class Maclasse{
        private int var;
      
        public void setVar(int var){ // ici le parametre porte le même nom que l'attribut
          this.var = var;
        }
      
        public MaClasse getMaClasse() // cette méthode ne sert a rien mais c'est juste pour l'exemple
          return this; // retourne l'instance (l'objet) qu'on traite
        }
      }
      

      ici this est de type de MaClasse.
      Il sert aussi a d'autre chose mais je ne sais plus trop a quoi, enfin c'est pas très important a ce stade.

      Pour la 2e question :
      Tous ce qui est déclaré en protected n'est accessible que dans le package courren, c'est a dire s'il n'est pas défini, le dossier où sont les classes.

      Donc si ton main est dans une classe du même répertoire que les classes utilisé il faut que tu déclare un package dans ces classes.

      sinon met en private et utilise les accesseurs mais ça devient vite lourd.
      • Partager sur Facebook
      • Partager sur Twitter

      [java] this, tuto de cysboy

      × 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