|
|
|
|
Salut,
J'ai codé une classe Rectangle ayant les méthodes suivanes : un constructeur à deux arguments, une méthode périmètre et une méthode surface. Au moment de la compilation, on m'affiche deux erreurs : lors de la déclaration de mon constructeur et une parenthèse manquante (pourtant je vois que j'ai fermé toutes mes parenthèses).
public class Disque
{
public static void main(String args[])
{
float diametre;
float pi = 3.14;
Disque(float d)
{
diametre=d;
}
float perimetre(float diametre)
{
float p;
p=
System.out.println("le perimetre du disque est : "+p);
}
float surface(float
{
float s;
s=
System.out.println("la surface du disque est : "+s);
}
}
}
Bonjour,
float surface(float) Ton erreur dans ton constructeur c'est parce que tu défini ton constructeur à l'intérieur de ton main... ce qui est impossible de faire. Voilà ta classe correctement écrite :
public class Disque
{
float diametre;
float pi = 3.14;
Disque(float d)
{
super();
diametre=d;
}
float perimetre( ) // --- Pas besoin de paramètre puisque le diamètre est renseigné dans ton constructeur
{
float p = 0;
p= ???? // --- Ici il faudrait faire ton calcul de périmètre !
System.out.println("le perimetre du disque est : "+p);
}
float surface( ) // --- Pas besoin de paramètre puisque le diamètre est renseigné dans ton constructeur
{
float s = 0;
s = // --- Calculer ta surface !!
System.out.println("la surface du disque est : "+s);
}
public static void main ( String[] args ){
Disque monDisque = new Disque(10);
monDisque.perimetre();
monDisque.surface();
}
}
~ N'oubliez pas la balise "Résolu" lorsque votre problème est... résolu :) ~ |
Salut et merci de ton aide :)
public class Disque
{
public static void main(String args[])
{
float diametre;
float pi = 3.14;
Disque(float d)
{
super();
diametre=d;
}
float perimetre()
{
float p=0;
r=diametre/2;
p=(4/3)*r*r*r;
System.out.println("le perimetre du disque est : "+p);
}
float surface()
{
float s=0;
r=diametre/2;
s=pi*r*r;
System.out.println("la surface du disque est : "+s);
}
}
}
S'il te plait, je n'ai pas compris cette ligne -je la vois pour la première fois- :( super(); Je ne suis pas certaine des calculs de la surface et du périmètre, ça fait un bail que je ne les ai pas utilisés ;) Par la suite, j'ai écris une classe qui s'appelle Test afin d'instancier deux rectangles, j'ai affiché après les valeurs calculées Ma question est comment je mets en relation les deux classes : Disque et Test ? Ou bien je ferais comme toi : la classe Test se transformera en un main. Voilà ma classe Test : class Test
{
public static void main(String args[])
{
Disque d1=new Disque(10);
Disque d2=new Disque(15);
System.out.println("le perimetre du disque 1 est : "+d1.perimetre());
System.out.println("le perimetre du disque 2 est : "+d2.perimetre());
}
} |
Super() permet d'appeler le constructeur de la classe mère. Par défaut en java, toute classe que tu créé toi, même si tu n'y met pas d'extends sur une autre classe, étends la classe générique Object.
public class Disque
{
private float diametre;
private float pi = 3.14;
Disque(float d)
{
super();
diametre=d;
}
public void perimetre()
{
float p=0;
float r =diametre/2;
p=(4/3)*r*r*r;
System.out.println("le perimetre du disque est : "+p);
}
public void surface()
{
float s=0;
float r=diametre/2;
s=pi*r*r;
System.out.println("la surface du disque est : "+s);
}
}
}
Dans cette nouvelle version tu as également oublié de déclarer tes variables 'r' dans tes fonction de perimetre et surface. J'ai également enlevé le retour 'float' de ces mêmes méthodes. Si tu déclare un retour il faut obligatoirement retourner un résultat ! Personnellement ce que je ferais c'est justement retourner ton calcul (et pas l'afficher directement dans ta classe Disque), le récupérer dans le main de ton autre classe (là où tu instancie tes objets Disque et fais appel aux méthodes de calcul du périmètre), puis tu affiche les valeur récupérées. Voici le code des deux classes : public class Disque
{
private float diametre;
private float pi = 3.14;
Disque(float d)
{
super();
diametre=d;
}
public float perimetre()
{
float p=0;
float r =diametre/2;
p=(4/3)*r*r*r;
return p;
}
public float surface()
{
float s=0;
float r=diametre/2;
s=pi*r*r;
return s;
}
}
}
class Test
{
public static void main(String args[])
{
Disque d1=new Disque(10);
Disque d2=new Disque(15);
System.out.println("le perimetre du disque 1 est : "+d1.perimetre());
System.out.println("le perimetre du disque 2 est : "+d2.perimetre());
}
}
~ N'oubliez pas la balise "Résolu" lorsque votre problème est... résolu :) ~ |
Tu as laissé glisser une parenthèse dans la classe Disque apparemment ^^ (ici : Voici le code des deux classes : )
public class Disque
{
private double diametre;
private double pi = 3.14;
Disque(double d)
{
super();
diametre = d;
}
public double perimetre()
{
double p = 0;
double r = diametre / 2;
p = (4 / 3) * r * r * r;
return p;
}
public double surface()
{
double s = 0;
double r = diametre / 2;
s = pi * r * r;
return s;
}
}
public class Rectangle
{
private float largeur;
private float hauteur;
Rectangle(float l, float h)
{
largeur=l;
hauteur=h;
}
public float perimetre()
{
float p;
p=(largeur+hauteur)*2;
return p;
}
public float surface()
{
float s;
s=largeur*hauteur;
return s;
}
}
class Test
{
public static void main(String args[])
{
Disque d1=new Disque(10);
Disque d2=new Disque(15);
System.out.println("le perimetre du disque 1 est : "+d1.perimetre());
System.out.println("le perimetre du disque 2 est : "+d2.perimetre());
System.out.println("la surface du disque 1 est : "+d1.surface());
System.out.println("la surface du disque 2 est : "+d2.surface());
System.out.println("le perimetre du rectangle 1 est : " + r1.perimetre());
System.out.println("le perimetre du rectangle 2 est : " + r2.perimetre());
System.out.println("la surface du rectangle 1 est : " + r1.surface());
System.out.println("la surface du rectangle 2 est : " + r2.surface());
float diagonale1, diagonale2;
diagonale1 = sqrt(l.r1 * l.r1 + h.r1 * h.r1);
diagonale2 = sqrt(l.r2 * l.r2 + h.r2 * h.r2);
System.out.println("le diagonale du rectangle 1 est : " + diagonale1);
System.out.println("le diagonale du rectangle 2 est : " +diagonale2);
}
}
J'ai plein d'erreurs c'est sûr :( Bonne soirée :) |