Java et heritage

Fermé
athena21 Messages postés 75 Date d'inscription lundi 17 mai 2010 Statut Membre Dernière intervention 23 mai 2011 - 13 déc. 2010 à 14:05
choubaka Messages postés 39407 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 9 décembre 2024 - 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.


A voir également:

2 réponses

Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
13 déc. 2010 à 14:47
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
3
choubaka Messages postés 39407 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 9 décembre 2024 2 104
13 déc. 2010 à 14:58
en effet, c'est pas faux ;-)
0
choubaka Messages postés 39407 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 9 décembre 2024 2 104
13 déc. 2010 à 14:24
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é.
1