2013-10-02 5 views
-1

Je suis dans une classe de programmation intro, dans le laboratoire sur lequel je travaille actuellement, nous devons avoir deux classes et tirer les méthodes d'une classe, "Energy" et les faire fonctionner dans "Pilote d'énergie". Je vais avoir du mal à appeler les méthodes (testone, testtwo, testThree) sur dans « EnergyDriver »appeler une méthode d'une autre classe

public class EnergyDriver 

    { 
    public static void main(String [] args) 
    { 

    System.out.println(mass1 + " kiolograms, " + velocity1 + 
        "meters per second: Expected 61250," + " Actual " + kineticE1); 

    System.out.println(mass2 + " kiolograms, " + velocity2 + 
        "meters per second: Expected 61250," + " Actual " + kineticE2); 

    System.out.println(mass3 + " kiolograms, " + velocity3 + 
        "meters per second: Expected 61250," + " Actual " + kineticE3); 

    } 
    } 


    public class Energy 

{ 
     public static void main(String [] args) 
    { 


    public double testOne; 
    { 
double mass1; 
double velocity1; 
double holderValue1; 
double kineticE1; 

mass1 = 25; 
velocity1 = 70; 

holderValue1 = Math.pow(velocity1, 2.0);  
kineticE1 = .5 *holderValue1 * mass1; 

} 

    public double testTwo; 
    { 
double mass2; 
double velocity2; 
double holderValue2; 
double kineticE2; 

mass2 = 76.7; 
velocity2 = 43; 

holderValue2 = Math.pow(velocity2, 2.0);  
kineticE2 = .5 *holderValue2 * mass2; 


} 

    public double testThree; 
    { 
double mass3; 
double velocity3; 
double holderValue3; 
double kineticE3; 

mass3 = 5; 
velocity3 = 21; 

holderValue3 = Math.pow(velocity3, 2.0);  
kineticE3 = .5 *holderValue3 * mass3; 


} 
} 
+0

Pouvez-vous analyser la classe 'Energy' jusqu'à l'endroit où vous essayez d'appeler les méthodes' EnergyDriver' (ou vice versa, quel que soit appeler l'autre). – nhgrif

+0

Veuillez formater vos blocs de code comme si vous le transformiez en professeur. – ChiefTwoPencils

Répondre

0

programmes Java ont point d'entrée unique et qui est par la principale méthode. Par conséquent, dans un seul projet, une seule classe devrait avoir la méthode principale et quand le compilateur la recherchera quand vous l'exécuterez. Rappelez-vous que les méthodes statiques ne peuvent pas accéder à des méthodes non statiques, par conséquent main est statique donc il ne peut pas accéder à deux testone ni trois à moins que vous créez et objet de ce type. Signification dans la méthode principale, vous pouvez avoir Energy e = new Energy() puis accéder aux méthodes qui n'ont pas été déclarées avec le mot-clé statique comme e.testone(). Notez cependant que les méthodes non statiques peuvent accéder aux méthodes statiques par le biais du nom Classname.Method car le mot clé static implique qu'une seule copie de cette méthode/variable existe donc nous n'avons pas besoin d'objet pour y accéder car une seule copie existe.

Je recommande de regarder les vidéos Java de Lynda.com ou de lire les livres Java Head First et Java How To Program (Deitel, Deitel) pour améliorer vos connaissances en Java, ils viennent avec beaucoup d'exercices pour améliorer vos connaissances.
Aussi il y a beaucoup d'autres questions comme ceci sur SO les chercher

1

Vous devez avoir une seule principale méthode dans l'une des classes. Pour appeler une méthode d'une autre classe, vous pouvez créer un objet de cette classe et appeler leur méthode respective. Une autre méthode consiste à garder la méthode appelante statique afin que vous puissiez accéder à cette méthode via Classname.Methodname.

public class EnergyDriver 
{ 
    public static void main(String [] args) 
    { 
    Energy energy=new Energy(); 
     System.out.println(mass1 + " kiolograms, " + velocity1 + 
       "meters per second: Expected 61250," + " Actual " + energy.testOne()); 

     System.out.println(mass2 + " kiolograms, " + velocity2 + 
       "meters per second: Expected 61250," + " Actual " + energy.testTwo()); 

     System.out.println(mass3 + " kiolograms, " + velocity3 + 
       "meters per second: Expected 61250," + " Actual " + energy.testThree()); 

} 
} 
class Energy 
{ 

public double testOne() 
{ 
    double mass1; 
    double velocity1; 
    double holderValue1; 
    double kineticE1; 

    mass1 = 25; 
    velocity1 = 70; 

    holderValue1 = Math.pow(velocity1, 2.0);  
    kineticE1 = .5 *holderValue1 * mass1; 

    return kineticE1; 
} 

    public double testTwo() 
{ 
double mass2; 
double velocity2; 
double holderValue2; 
double kineticE2; 

mass2 = 76.7; 
velocity2 = 43; 

holderValue2 = Math.pow(velocity2, 2.0);  
kineticE2 = .5 *holderValue2 * mass2; 

return kineticE2; 
} 

public double testThree() 
{ 
double mass3; 
double velocity3; 
double holderValue3; 
double kineticE3; 

mass3 = 5; 
velocity3 = 21; 

holderValue3 = Math.pow(velocity3, 2.0);  
kineticE3 = .5 *holderValue3 * mass3; 

return kineticE3; 
} 
} 

Vous pouvez obtenir la valeur de Kinetic Engergy 1,2,3 en utilisant ce code.

Vous pouvez également utiliser le code ci-dessous qui utilisera une seule méthode pour calculer différentes valeurs en donnant des arguments différents.

public class EngergyDriver 
{ 
    public static void main(String [] args) 
    { 
    Energy energy=new Energy(); 
    double mass=25; 
    double velocity=70;   
     System.out.println(mass+ " kiolograms, "+velocity+"meters per second: Expected 61250," + " Actual " + energy.testOne(mass,velocity)); 

    } 
} 
    class Energy 
{ 

public double testOne(double mass, double velocity) 
{ 
    double mass1; 
    double velocity1; 
    double holderValue1; 
    double kineticE1; 

    mass1 = 25; 
    velocity1 = 70; 

    holderValue1 = Math.pow(velocity1, 2.0);  
    kineticE1 = .5 *holderValue1 * mass1; 

    return kineticE1; 
} 

} 
Questions connexes