[JAVA] Problème de méthode ?

Voir le sujet précédent Voir le sujet suivant Aller en bas

[JAVA] Problème de méthode ?

Message  Dj x-fuse le Sam 15 Nov 2008, 11:17

Bonjour à tous,

Je sollicites une fois de plus votre attention car j'ai un petit problème de compilation du programme Diabolo du TD7.

Voici le code :

Code:

// Méthode d'affichage du diabolo
   public void affiche(){
   int nEspaces;
   nEspaces = 0;
   for(int nCar; nLignes <= 0; nCar=nCar-2){
      for(int j=1; j <= nEspaces; j++){
         System.out.println(" ");
      }
      for (int j=1; j <= nCar; j++){
         System.out.println(diabolo.getCaractère()); // PROBLEME 1
      }
      nEspaces = nEspaces +1;
      System.out.println('\n');
   }
   nEspaces = nEspaces -2;
   for (int nCar=3; nCar <= nLignes; nCar=nCar+2){
      for (int j=1; j <= nEspaces; j++){
         System.out.println(" ");
      }
      for (int j=1; j <= nCar; j++){
         System.out.println(diabolo.getCaractère()); // PROBLEME 2
      }
      nEspaces = nEspaces-1;
      System.out.println('\n');
   }
   }

Et voici ce que j'ai lors de la compilation :




Et voici ce que j'ai si je change

Code:

public void affiche(){

par

Code:

public static void afiche(){



C'est grave docteur? Embarassed

Dj x-fuse

Nombre de messages : 658
Age : 27
Prénom : Jonathan
Statut : 4ième sécu
Localisation : IRL
Date d'inscription : 18/10/2008

Revenir en haut Aller en bas

Re: [JAVA] Problème de méthode ?

Message  mcd le Sam 15 Nov 2008, 11:33

La méthode affiche() est une méthode d'objet.
Elle appartient à l'objet et connaît son état.
Si dedans tu veux connaître le caractère à utiliser, tu peux directement utiliser l'attribut
- System.out.println(caractère);
ou encore tu peux appeler l'accesseur mais sans mettre le nom de la classe devant
- System.out.println(getCaractère());

Ecrire diabolo.getCaractère() voudrait dire donne moi le caractère de la classe diabolo mais chaque diabolo a son propre caractère...

mcd

Nombre de messages : 1548
Prénom : Marco
Statut : prof
Localisation : Molenbeek
Date d'inscription : 29/09/2006

http://mcd.namok.be

Revenir en haut Aller en bas

Re: [JAVA] Problème de méthode ?

Message  Anthoblack le Sam 15 Nov 2008, 17:21

mcd a écrit:Ecrire diabolo.getCaractère() voudrait dire donne moi le caractère de la classe diabolo mais chaque diabolo a son propre caractère...
Sans mcd, j'aurais pas deviné que diabolo est une classe (et non une variable d'instance)...

N'oublies pas que les classes commencent TOUJOURS par une majuscule du type "Classe1", contrairement aux variables d'instance s'écrivant du type "variableDInstance1"...


Juste pour rappel, c'est jamais inutile je pense, et ça aide à la (re)lecture !

Anthoblack

Nombre de messages : 764
Age : 28
Prénom : Anthony
Statut : Ex-étudiant
Localisation : Bruxelles
Date d'inscription : 11/03/2008

Revenir en haut Aller en bas

Re: [JAVA] Problème de méthode ?

Message  Dj x-fuse le Dim 16 Nov 2008, 17:33

Merci pour la précision MCD !

J'ai capter la petite subtilité un getteur dans sa propre classe, je n'y avais pas pensés...

Bref, après petite modif de la classe affiche(), le soft tourne bien et j'ai un joli diabolo Smile

Dj x-fuse

Nombre de messages : 658
Age : 27
Prénom : Jonathan
Statut : 4ième sécu
Localisation : IRL
Date d'inscription : 18/10/2008

Revenir en haut Aller en bas

Re: [JAVA] Problème de méthode ?

Message  Anthoblack le Dim 16 Nov 2008, 18:33

Tu peux utiliser les getteurs et setteurs dans ta propre classe, aucun problème Smile Certains le font couramment (c'est même parfois nécessaire Wink)...

... Tant que tu ne les utilises pas comme si elles étaient des méthodes statiques. C'était là ton problème. Mais tu verras que si tu enlèves le "diabolo.", ça fonctionnera.

Anthoblack

Nombre de messages : 764
Age : 28
Prénom : Anthony
Statut : Ex-étudiant
Localisation : Bruxelles
Date d'inscription : 11/03/2008

Revenir en haut Aller en bas

Re: [JAVA] Problème de méthode ?

Message  Contenu sponsorisé Aujourd'hui à 08:43


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum