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

avec Java Discussion :

Classe et méthodes


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2007
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 57
    Points : 31
    Points
    31
    Par défaut Classe et méthodes
    Bonjour ,

    Voici 2 classes Point et Cercle que je dois créer .Voici les diagrammes UML.

    Classe Point2D

    - double x;
    -double y;

    +public Point2D ()
    +public Point2D (double x , double y )
    +public Point2D (Point2D p)
    +public double getX()
    +public double getY () +public void setX (double x)
    +public void setY (double y )
    +public void deplace (double x , double y)
    +public double distance (Point2D p)
    +public void saisir()
    + public Point2D sym_o ()
    +public String toString()

    j ai définit la classe Point2D comme suit :

    Code Classe POINT2D

    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
    public class Point2D {
    	//attibuts
    	private double x;
    	private double y;
    	
    	//Premier Constructeur 
    	public Point2D (){
                
    	}
        
    	//2 eme constructeur a 2 arguments 
    	public Point2D (double x , double y ){
        	this.x = x;
        	this.y = y;
        }
    	
    	//3 eme constructeur 
    	public Point2D (Point2D p){
    		//Point2D p1= new Point2D();
    		this.x = p.x;
    		this.y = p.y;
    		
    	}
    	
    	
    	//Get
    	public double getX(){
    		return this.x;
    	}
    	
    	public double getY (){
    		return this.y;
    	}
    	
    	//Set
    	public void setX (double x){
    		this.x = x;
    	}
    	
    	public void setY (double y ){
    		this.y = y;
    	}
    	
    	//Methode deplace 
    	public void deplace (double x , double y){
    		this.x +=x;
    		this.y +=y;
    	}
    	
    	//Methode string afficher les coordonnées du Point
    	public String toString(){
    		String s =   "(" + this.x + " , " +this.y + ")";
    		return s;
    	}
    	
    	//Methode distance entre 2 points
    	public double distance (Point2D p){
    		double distance;
    		distance = Math.sqrt((this.x- p.x ) * (this.x- p.x) + (this.y-p.y)* (this.y - p.y));
    		return distance;
    	}
            
           //Methode saisir
    	public void saisir(){
    		System.out.print ( " Saisir une abcisse  x = ");
    		this.x = Lire.reelDouble();
    		System.out.print ( " Saisir une ordonnée  y = ");
    		this.y = Lire.reelDouble();
    		
    	}
    	
            //Methode Symetrique
            public Point2D sym_o (){
    	        Point2D symetrique = new Point2D (this.y,this.x);
                     return symetrique
    	}
    }
    j ' aurai quelques petites questions :
    1-Par rapport au troisième constructeur , dois je créer un nouvel objet avec une référence différente?si j ' applique le code suivant en argument d ' après ce que j ' ai pu comprendre je fais passer une copie de la référence d ' un Point2D, ici je ne réalise qu ' une copie des champs ? :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public Point2D (Point2D p){
     
    		this.x = p.x;
    		this.y = p.y;
     
    	}
    2-Pour la méthode saisir , est elle correcte ??

    Merci je travaille sur la classe Cercle et je reviens

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    945
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 945
    Points : 1 840
    Points
    1 840
    Par défaut
    Citation Envoyé par racoboss Voir le message
    si j ' applique le code suivant en argument d ' après ce que j ' ai pu comprendre je fais passer une copie de la référence d ' un Point2D, ici je ne réalise qu ' une copie des champs ? :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public Point2D (Point2D p){
     
    		this.x = p.x;
    		this.y = p.y;
     
    	}
    Effectivement, le point p est passé par référence, il n'y a donc pas de copie de p lors de l'appel du constructeur, en dehors bien sûr de celui que vous réalisez manuellement.

    Citation Envoyé par racoboss Voir le message
    2-Pour la méthode saisir , est elle correcte ??
    Si la classe Lire l'est, alors ça a l'air bon. Que se passe-t-il si l'utilisateur tape n'importe quoi (ex : "msekghlsdkjgb")?

    Sans vouloir vous critiquer, quelques remarques.

    Faites attention quand vous rédigez une question:
    "si j ' applique le code suivant en argument" ne veut rien dire, et quand vous parlez de copie, parlez vous de celle effectuée par le constructeur, ou par l'appel du constructeur? Je ne cherche pas à vous vexer, mais plus vous serez clair, plus les réponses seront rapides.

    En Java, la méthode préférée pour copier un objet n'est pas un constructeur de copie mais l'implémentation de la méthode clone. Un constructeur de copie n'empêchera pas votre code de fonctionner, mais cette méthode inspirée du C++ pourrait perturber un développeur Java qui ne connaît pas cette méthode.

    La méthode saisir fait un peu tâche : au milieu d'une classe de données et de traitement, on trouve une méthode d'entrée / sortie. En général, mieux vaut diviser l'application en "couches" ou chaque classe a des responsabilités bien définies. Ca vous évitera de vous retrouver à chercher une erreur pouvant être située n'importe où dans un fichier de 15000 lignes au premier déboguage.

    Bon en fait je vous ai beaucoup critiqué, mais j'espère que ça peut vous aider.

Discussions similaires

  1. Documentation des classes et méthodes
    Par nicocolt dans le forum Langage
    Réponses: 2
    Dernier message: 02/02/2007, 17h14
  2. Pattern singleton ou Classe avec méthodes statiques ?
    Par Claythest dans le forum Langage
    Réponses: 3
    Dernier message: 11/12/2006, 11h28
  3. Classe et méthode Javascript
    Par Gunn_ dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/07/2006, 13h10
  4. Pointeurs de classes et méthodes
    Par insomniak dans le forum C++
    Réponses: 9
    Dernier message: 10/05/2006, 15h18
  5. Déclaration de classes et méthodes externes
    Par rulianf dans le forum C++
    Réponses: 6
    Dernier message: 15/09/2005, 15h26

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