IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Question sur this. (création de classe personnalisée)


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut Question sur this. (création de classe personnalisée)
    Bonjour tout le monde,

    Je suis occupé à apprendre les classes.

    J'ai un doute avec this.

    J'ai une classe temps qui me permet via une classe main d'envoyer des entiers à cette classe temps et d'avoir une heure sous le format hh:mm:ss

    C'est dans la méthode toString que j'ai un doute sur les .this :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    public class Temps 
    {
    	private int heure;
    	private int minute;
    	private int seconde;
    	
    	public Temps()
    	{
    		this.heure = 0;
    		this.minute =0;
    		this.seconde = 0;
    		
    	}
    	
    	public void setTemps(int heure,int minute,int seconde)
    	{
    			
    		if ((heure >23)||(heure <0))
    		{
    			heure = 0;
    		}
    		else
    		{
    			this.heure = heure;
    		}
    		
    		if ((minute > 59)||(minute <0))
    		{
    			minute = 0;
    		}
    		else
    		{
    			this.minute = minute;
    		}
    		
    		if ((seconde > 60)||(seconde <0))
    		{
    			seconde = 0;
    		}
    		else
    		{
    			this.seconde = seconde;
    		}
    		
    		//if (this.heure.length()<2)
    		//this.heure = "0"+this.heure;
    	}
    	
    	public String toString()
    	{
    		
    		String s = "";
    		
    		if ((this.heure <10))
    		{
    			s+= "0"+this.heure+":";
    		}
    		else
    		{
    			s+=this.heure+":";
    		}
    		
    		if ((this.minute<10))
    		{
    			s+="0"+this.minute+":";
    		}
    		else
    		{
    			s+= this.minute+":";
    		}
    		
    		if (this.seconde<10)
    		{
    			s+="0"+this.seconde;
    		}
    		else
    		{
    			s+=this.seconde;
    		}
    		
    		return s;
    	}
    	
    	
    }
    J'aimerais juste savoir si les this. ont bien leur place dans la méthode ?

    Les valeurs remises à la méthode setTemp sont trois entiers nommés heure, minute et seconde.

    Vous comprenez alors l'importance des this. (je pense que c'est ça la raison de l'utilisation de ce this. ?)

    J'aimerais donc savoir si heure dans la méthode toString est heure de la classe ou il faut mettre heure de la variable (et donc sans this).

    Merci d'avance pour l'éclaircissement.

    beegees

  2. #2
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    ben dans toString tu n'a pas de paramètre, tu n'a donc pas besoin de this dans cette méthode. Dans tous les cas les variables seront les membres de la classe.

    en fait this ne sers qu'à distinguer les variables membres des parmètres d'une méthode lorsqu'elles portent le même nom.

    juste 2 remarques :

    dans toString tu devrais plutot utiliser un stringBuffer (ou StringBuilder)
    la méthode setTemps me semble bizarre ... tu es sûr qu'elle fait ce que tu souhaites ?

    Moi j'aurais plutot vu ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if ((heure >23)||(heure <0))
    		{
    			this.heure = 0;
    		}
    		else
    		{
    			this.heure = heure;
    		}

  3. #3
    Membre émérite
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 122
    Par défaut
    A mon avis, le "this" est inutile dans la classe "toString" car cette classe n'a accès qu'aux variables de la classe "Temps". Elle n'a pas accès aux variables internes à la classe "setTemps".

    Par contre, dans la classe "setTemps", c'est "this.heure = 0" qu'il faut mettre et non "heure = 0".

    Je pense ne pas me tromper. Cordialement.

    Pierre

  4. #4
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Bonjour in, ChPr,

    Merci à vous deux pour vos réponses.

    la méthode setTemps me semble bizarre ... tu es sûr qu'elle fait ce que tu souhaites ?
    Avec ou sans this, j'ai le même résultat mais je mais this. d'office pour être sûre.

    J'ai bien compris maintenant, merci encore à vous deux.

    beegees

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quelques questions sur la création d'un logiciel
    Par dedesite dans le forum Langage
    Réponses: 7
    Dernier message: 02/03/2007, 23h07
  2. Réponses: 2
    Dernier message: 04/12/2005, 21h10
  3. Question sur la création d'une table
    Par air dans le forum Oracle
    Réponses: 4
    Dernier message: 23/10/2005, 12h46
  4. Question sur exports et les classes (pour une dll)
    Par DjPoke dans le forum Langage
    Réponses: 7
    Dernier message: 08/08/2005, 19h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo