2017-01-31 2 views
-1

Die erste Java-Klasse ist die primäre Klasse, die andere Klassen aufruft. Ich werde den Code für die beiden Dateien kopieren. Ich kann diesen Code nicht kompilieren und ich weiß nicht warum.Java-Programmierhilfe für 2 Dateien mit einer Kontrollklasse

Wenn ich das Programm in einer Datei hatte, lief es gut, aber der Lehrer will es in zwei Dateien. Kann mir jemand erklären, was ich mache oder falsch gemacht habe?

Datei 1:

public class Wk2ToddFoughty {   
    public static void main(String[] args) { 
     SalaryCalc FinalSalaryCalc = new SalaryCalc();    
     FinalSalaryCalc.SalaryCalc();    
    } 
} 

File 2:

import java.util.Scanner; 

class SalaryCalc {         
     Scanner in = new Scanner(System.in); 
     System.out.println("Enter your annual sales: $");   
     double sales = in.nextDouble(); 
     double salary = 35000.00; 
     double commission = (sales * .015); 
     double totalSalary = salary + sales; 
     System.out.println("Your Salary + Commission is: $" + totalSalary); 
} 
+1

In Datei 2, vergessen Sie in der Methode zu kopieren? –

+1

Wo ist Ihre Methode in Datei 2? – msagala25

+1

Methodenbeschreibung wurde nicht in Klasse 2 gefunden. – GrabNewTech

Antwort

0

Es könnte einfacher sein, zu verstehen, wenn Sie Java Namenskonventionen gehalten - siehe auch Ihre Inline-Kommentare

public class Wk2ToddFoughty {   
    public static void main(String[] args) { 
     SalaryCalc myCalc = new SalaryCalc(); // SalaryCalc - name of class 
               // myCalc - name of object    
     myCalc.doCalc();      // doCalc - name of method (missing from your class)   
    } 
} 

// edit this class to add missing method 

public class SalaryCalc {         

     public void doCalc() { 
     Scanner in = new Scanner(System.in); 
     System.out.println("Enter your annual sales: $");   
     double sales = in.nextDouble(); 
     double salary = 35000.00; 
     double commission = (sales * .015); 
     double totalSalary = salary + sales; 
     System.out.println("Your Salary + Commission is: $" + totalSalary); 

    } 
} 
+0

Danke und alle anderen, die kommentiert haben. Ich weiß, dass es frustrierend sein kann, Neulingen zu helfen. Ich bekomme immer noch Fehler, wenn ich versuche, den Code von nicht finden Scanner in = Scanner (System.in) zu kompilieren. Dies scheint dort zu sein, wo es vorher versagt hat, und ich verstehe nicht warum. –

0

Die zweite Datei definiert keine Methode namens SalaryCalc. Sie sollten auch die standardmäßigen Java-Benennungspraktiken berücksichtigen und die Eingabe/Ausgabe-Logik außerhalb Ihrer Geschäftsklassen beibehalten.

import java.util.Scanner; 

public class Wk2ToddFoughty {   
    public static void main(String[] args) { 
     Scanner in = new Scanner(System.in); 
     System.out.println("Enter your annual sales: $"); 
     SalaryCalc calc = new SalaryCalc(35000); 
     double totalSalary = calc.calcSalary(in.nextDouble());  
     System.out.println("Your Salary + Commission is: $" + totalSalary); 
    } 
} 

public class SalaryCalc { 
    private double salary; 

    public SalaryCalc(double salary) { 
     this.salary = salary; 
    } 

    public void calcSalary(double sales) { 
     double commission = sales * 0.015; 
     return salary + sales + commission; 
    } 
} 
+0

Vielen Dank für Ihre Antwort. Ich weiß, dass die Unterstützung von Neulingen frustrierend sein kann. Ich habe Ihren Code ausprobiert und Fehler erhalten. C: \ Benutzer \ TMFoughty \ Desktop \ java> javac Wk2ToddFoughty.java Wk2ToddFoughty.java:3: Fehler: Symbol nicht gefunden Scanner in = neuer Scanner (System.in); ^ Symbol: Klasse Scanner Ort: Klasse Wk2ToddFoughty Wk2ToddFoughty.java:3: Fehler: kann Symbol nicht finden Scanner in = neuer Scanner (System.in); ^ Symbol: Klasse Scanner –

+0

Dies scheint zu sein, wo ich falsch liege, das scheint der Fehler zu sein, den ich die meiste Zeit bekomme. –

+0

Sorry, ich habe die Importe nicht beachtet. Sie müssen 'Scanner' am Anfang der Datei importieren, in der es verwendet wird. – 4castle