Exercice en java

lindap Messages postés 60 Date d'inscription   Statut Membre Dernière intervention   -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
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 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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   Statut Membre Dernière intervention   1
 
comment je peut l'enregistrer svp?
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
comme n'importe quel fichier : enregistrer sous... Cercle.java
0
lindap Messages postés 60 Date d'inscription   Statut Membre Dernière intervention   1
 
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 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
il ne faut pas oublier la majuscule.
0
lindap Messages postés 60 Date d'inscription   Statut Membre Dernière intervention   1
 
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
 
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 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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
 
Salut,

Peux-tu nous dire comment tu executes ce programme?

Cordialement,

Dan
0
lindap Messages postés 60 Date d'inscription   Statut Membre Dernière intervention   1
 
avec le NetBeans (debug file)
0
Utilisateur anonyme
 
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 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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