Création
d'entreprise
Posez votre question Signaler

Java et heritage

athena21 36Messages postés 17 mai 2010Date d'inscription 23 mai 2011Dernière intervention - Dernière réponse le 13 déc. 2010 à 14:58
Bonjour, je suis débutante en java j'ai crée une classe Point :
class Point
{
private double x,y;
public Point(double x, double y){this.x=x; this.y=y;}
public void deplace(double dx, double dy){ x+=dx; y+=dy;}
public void affiche(){
System.out.println("Point de coordonn'ees "+x+" "+y);
}
public double getX(){ return x; }
public double getY(){ return y; }
}
je veux réaliser une classe Cercle, derivant de point, definie par un
centre et un rayon et disposant des methodes suivantes :
- un constructeur recevant en argument les coordonnees du centre du cercle
et son rayon,
- deplaceCentre pour modifier les coordonnees du centre du cercle
- changeRayon pour modifier le rayon du cercle
- getCentre qui fournit un objet de type Point correspondant au centre du
cercle
- affiche qui affiche les coordonnees du centre du cercle et son rayon
pouvez-vous s'il vous plait m'aider?
Cordialement.
Lire la suite 

Java et heritage »

Suggestions
3 réponses
Réponse
+3
moins plus
Bonjour,

L'utilisation de l'héritage me paraît quand même bancale. D'un point de vue strictement informatique, cela peut fonctionner si on considère qu'un cercle n'est jamais qu'un point (le centre) possédant une périphérie.

Par contre, d'un point de vue mathématique, cela signifierait qu'un cercle est un point...

Il me semblerait plus judicieux de créer une nouvelle classe, Cercle, n'héritant pas de Point mais dont un des membres serait un Point :
class Cercle
{
    private double rayon;
    private Point centre;

    public Cercle(double x, double y, double rayon)
    {
        this.centre = new Point(x, y);
        this.rayon = rayon;
    }

    public void deplaceCentre(double dx, double dy)
    {
        this.centre.deplace(dx, dy);
    }

    public void changeRayon(double dr)
    {
        this.rayon += dr;
    }

    public Point getCentre(){ return this.centre; }

    public void affiche()
    {
        System.out.println("Cercle de centre " + this.centre.getX() + " " + this.centre.getY() + " et de rayon " + this.rayon);
    }
} 


Xavier
choubaka- 13 déc. 2010 à 14:58
en effet, c'est pas faux ;-)
Ajouter un commentaire
Réponse
+1
moins plus
Salut

public class Cercle extends Point {

private double rayon;

public Cercle (double x, double y, double rayon){

super(x, y);

this.rayon = rayon;

}

public void deplaceCentre ( double x, double y){

super.deplace(x,y);

}

public void changeRayon(double rayon){

this.rayon = rayon;

}

public Point getCentre(){

return new Point(x, y);
}

public void affiche(){

System.out.println("Point de coordonnées ="+ x + "," + y + ", "Rayon = " rayon";

}


}

en gros c'est ça, mais je n'ai pas compilé.
Ajouter un commentaire
Ce document intitulé « java et heritage » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?