Java et heritage

athena21 Messages postés 75 Date d'inscription   Statut Membre Dernière intervention   -  
choubaka Messages postés 39442 Date d'inscription   Statut Modérateur Dernière intervention   -
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   Statut Membre Dernière intervention   1 011
 
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 39442 Date d'inscription   Statut Modérateur Dernière intervention   2 105
 
en effet, c'est pas faux ;-)
0
choubaka Messages postés 39442 Date d'inscription   Statut Modérateur Dernière intervention   2 105
 
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