2012-03-01 2 views
0

Je travaille sur une tâche d'école et je suis un peu confus en ce moment. ce serait génial que quelqu'un puisse signaler le problème pour que je puisse en tirer des leçons. Alors voici:Main.java avec simple calcul statique double

C'est un calcul simple de miles en kilomètres et vice-versa. Voilà ce que j'ai:

public class Kilometer { 

    static double mijlToKilometer(double mijl) { 
     double kilometer = 1.609 * mijl; 
     return kilometer; 
    } 

    static double kilometerToMijl(double kilometer) { 
     double mijl = 0.622 * kilometer; 
     return mijl; 
    } 
} 

Et c'est la principale:

public class Main { 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
     // TODO code application logic here 
     Scanner input = new Scanner(System.in); 

     System.out.println("mijl?"); 
     double mijl = input.nextDouble(); 
     Kilometer eenBerekening = new Kilometer(); 
     eenBerekening.mijl = mijl; 
     eenBerekening.mijlToKilometer(); 

     System.out.println("kilometer?"); 
     double kilometer = input.nextDouble(); 
     eenBerekening.kilometer = kilometer; 
     eenBerekening.kilometerToMijl(); 
    } 

} 

J'ai la "java.util.Scanner d'importation;" ligne donc ce n'est pas ça. Netbeans donne un problème à ces lignes:

Kilometer eenBerekening = new Kilometer(); 
    eenBerekening.mijl = mijl; 
    eenBerekening.mijlToKilometer(); 

Aidez quelqu'un? Merci d'avance !!

MISE À JOUR Donc, c'est ce que j'ai en ce moment et ça marche. Merci pour toute l'aide !!!

Kilometer.java

public class Kilometer { 

    static double mijlToKilometer(double mijl) { 
     double kilometer = 1.609 * mijl; 
     System.out.println(kilometer); 
     return kilometer; 
    } 

    static double kilometerToMijl(double kilometer) { 
     double mijl = 0.622 * kilometer; 
     System.out.println(mijl); 
     return mijl; 
    } 
} 

Main.java

public class Main { 
    public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 

     System.out.println("mijl?"); 
     double mijl = input.nextDouble(); 
     Kilometer.mijlToKilometer(mijl); 

     System.out.println("kilometer?"); 
     double kilometer = input.nextDouble(); 
     Kilometer.kilometerToMijl(kilometer); 
    } 

} 
+1

Quel message d'erreur vous voyez? –

+0

Impossible de trouver le symbole. C'est ce qu'il dit –

+0

Je ne vois pas de mijl dans votre classe KIlometer. – nullpotent

Répondre

0

Vous utilisez le mot-clé static pour votre déclaration de méthode lorsque vous êtes en fait les appeler à l'aide d'une instance.

En outre, vous essayez de mettre

eenBerekening.mijl = mijl; 

alors que vous avez aucun paramètre de classe mijl dans votre classe. Il suffit d'appeler votre méthode avec

eenBerekening.mijlToKilometer(mijl); 
1

Vous ne disposez pas d'un attribut mijl sur votre classe Kilometer. Et comme indiqué par d'autres vos méthodes Kilometer sont statiques. Il suffit d'appeler cela de la classe, vous n'avez pas besoin d'une instance:

Kilometer.mijlToKilometer(mijl); 
2

Vous classe Kilometer ne dispose pas d'un champ appelé mijl, c'est pourquoi le compilateur se plaint.

1
Kilometer eenBerekening = new Kilometer(); 
    eenBerekening.mijl = mijl; 

Vous créez une instance de classe Kilometer et l'affectation à une propriété non définie dans cette classe.

eenBerekening.kilometerToMijl(); 

Vous êtes ici appeler une méthode static sur une instance et de ne pas passer dans le paramètre requis.

0

Vous avez des méthodes statiques.Ces méthodes sont à niveau classe pas instance de niveau, vous devez appeler:

Kilometer.mijlToKilometer() 
0

Comme vous l'avez déclaré ces méthodes statiques, vous n'avez pas besoin d'une instance de Kilomètre de les utiliser, il vous suffit faire:

Kilometer.mijlToKilometer(12.02) 
1
public class Main { 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
     // TODO code application logic here 
     Scanner input = new Scanner(System.in); 

     System.out.println("mijl?"); 
     double mijl = input.nextDouble(); 
     Kilometer eenBerekening = new Kilometer(); 

     Kilometer.mijlToKilometer(mijl); //calling static class and passing parameter to function 

     System.out.println("kilometer?"); 
     double kilometer = input.nextDouble(); 

     Kilometer.kilometerToMijl(kilometer); // same as before but other function 
    } 

} 
0
  1. Les méthodes sont static, de sorte que vous n'avez pas besoin de new.
  2. Il n'y a pas de champ mijl de la classe Kilometer, publique ou autre.
  3. Les méthodes static sur Kilometer attendent un paramètre, mais votre code n'en passe pas un.

Alors:

double mijl = input.nextDouble(); 
double kilometer = Kilometer.mijlToKilometer(mijl);