Exercice en java

Fermé
lindap Messages postés 60 Date d'inscription lundi 8 février 2010 Statut Membre Dernière intervention 31 mai 2011 - Modifié par lindap le 10/12/2010 à 20:17
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 13 déc. 2010 à 09:07
Bonjour,

public class Cercle {
static float pi = 3.1416f;
float rayon;
public Cercle(float rayon)
{ this.rayon = rayon; }
public float surface()
{ return rayon * rayon * pi;}
}

dans l'exécution de ce programme sur netBeans il y a une erreur la voici :
class cercle is public, should be declared in a file named cercle.java

j'arrive pas a comprendre ou dois je déclarer cette classe svp??
A voir également:

4 réponses

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
10 déc. 2010 à 20:57
Le message d'erreur est assez explicite, toute classe publique doit être enregistrée dans un fichier java qui porte son nom.
Ta classe Cercle devra donc être dans le fichier Cercle.java
2
lindap Messages postés 60 Date d'inscription lundi 8 février 2010 Statut Membre Dernière intervention 31 mai 2011 1
10 déc. 2010 à 21:57
comment je peut l'enregistrer svp?
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
10 déc. 2010 à 22:01
comme n'importe quel fichier : enregistrer sous... Cercle.java
0
lindap Messages postés 60 Date d'inscription lundi 8 février 2010 Statut Membre Dernière intervention 31 mai 2011 1
10 déc. 2010 à 22:06
ok je viens de cliqué sur file après save as et j é nommé le fichier cercle .java mais l'erreur existe tjr!!
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
10 déc. 2010 à 22:08
il ne faut pas oublier la majuscule.
0
lindap Messages postés 60 Date d'inscription lundi 8 février 2010 Statut Membre Dernière intervention 31 mai 2011 1
10 déc. 2010 à 22:20
ok merci b1 ca marche mais il y une autre erreur ici:
public Cercle(float rayon)
msg d'erreur: invalid method declaration;return type required
0
Utilisateur anonyme
12 déc. 2010 à 22:30
Salut,

Ton programme n'est pas exécutable directement.
Il doit l'être à partir du programme qui doit l'utiliser.

Exemple depuis la méthode main(...) du programme de l'utilisateur:

         Cercle unCercle;
         unCercle = new Cercle(10f); // on passe le rayon au constructeur
         float surface = unCercle.surface; // on récupère la surface
      
         System.out.println("Surface: " + surface);


Mais (Poo oblige) ta class Cercle et son constructeur doivent être modifiés:

 public class Cercle
   {
      private float pi = 3.1416f;
      private float rayon;
      public float surface;
      
      public Cercle(float valRayon)
      {
         rayon = valRayon;
         surface = rayon * rayon * pi;
      }


Cordialement,

Dan
1
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
12 déc. 2010 à 22:37
Non, la classe Cercle n'a pas besoin d'être modifié, surface est une propriété du cercle, ça ne fait pas partie de la structure de ce cercle, ce doit donc bien être une méthode !

On aura alors : float surface = unCercle.surface(),

Remarque : la constante Math.PI existe, autant s'en servir...
0
Utilisateur anonyme
11 déc. 2010 à 11:54
Salut,

Peux-tu nous dire comment tu executes ce programme?

Cordialement,

Dan
0
lindap Messages postés 60 Date d'inscription lundi 8 février 2010 Statut Membre Dernière intervention 31 mai 2011 1
12 déc. 2010 à 18:54
avec le NetBeans (debug file)
0
Utilisateur anonyme
12 déc. 2010 à 22:53
Ps,

Une remarque tout de même:

L'utilisation d'un constructeur n'a rien dobligatoire...

   public class Cercle
   {
      private float pi = 3.1416f;
      private float surface;
      
      public float CalculerLaSurfaceDunCercle(float rayon)
      {
         surface = rayon * rayon * pi;
         return surface;
      }
   }


et la partie utilisation depuis la méthode main(...

         Cercle c = new Cercle();
         float surface = c.CalculerLaSurfaceDunCercle(10f);
         
         System.out.println("Surface: " + surface);


Dan
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
13 déc. 2010 à 09:07
Dans ce cas il faut déclarer la méthode static car elle n'utilise pas l'objet this

public class Cercle
{
     public static double surface(double rayon)
     {
           return Math.PI * Math.pow(rayon,2.0);
     }
}

System.out.println("Surface : "+Cercle.surface(10.0));
0