Veuillez excuser la longueur du texte, mais voici deux programmes, tous deux identiques, mais l'un avec et l'autre sans setters, getters et constructeurs.
J'ai déjà suivi un cours de C++ de base et je ne me souviens d'aucun de ces éléments, et pour l'instant je n'en vois pas l'intérêt, si quelqu'un pouvait les expliquer en termes simples j'apprécierais beaucoup... pour l'instant ils semblent n'être rien de plus que des pertes d'espace pour faire paraître mon code plus long, mais le professeur dit qu'ils sont importants (et jusqu'à présent c'est tout).
Merci d'avance ! Et maintenant voici le code : Mileage.java :
package gasMileage;
import java.util.Scanner; //program uses class Scanner
public class Mileage
{
public int restart;
public double miles, gallons, totalMiles, totalGallons, milesPerGallon;
public Mileage(int newRestart, double newMiles, double newGallons,
double newTotalMiles, double newTotalGallons, double newMilesPerGallon)
{
setRestart(newRestart);
setMiles(newMiles);
setGallons(newGallons);
setTotalMiles(newTotalMiles);
setTotalGallons(newTotalGallons);
setMilesPerGallon(newMilesPerGallon);
}
public void setRestart(int newRestart)
{
restart = newRestart;
}
public int getRestart()
{
return restart;
}
public void setMiles(double newMiles)
{
miles = newMiles;
}
public double getMiles()
{
return miles;
}
public void setGallons(double newGallons)
{
gallons = newGallons;
}
public double getGallons()
{
return gallons;
}
public void setTotalMiles(double newTotalMiles)
{
totalMiles = newTotalMiles;
}
public double getTotalMiles()
{
return totalMiles;
}
public void setTotalGallons(double newTotalGallons)
{
totalGallons = newTotalGallons;
}
public double getTotalGallons()
{
return totalGallons;
}
public void setMilesPerGallon(double newMilesPerGallon)
{
milesPerGallon = newMilesPerGallon;
}
public double getMilesPerGallon()
{
return milesPerGallon;
}
public void calculateMileage()
{
Scanner input = new Scanner(System.in);
while(restart == 1)
{
System.out.print("Please input number of miles you drove: ");
miles = input.nextDouble();
totalMiles = totalMiles + miles;
System.out.print("Please input number of gallons you used: ");
gallons = input.nextDouble();
totalGallons = totalGallons + gallons;
milesPerGallon = miles / gallons;
System.out.printf("Your mileage is %.2f MPG.\n", milesPerGallon);
System.out.print("Would you like to try again? 1 for yes, 2 for no: ");
restart = input.nextInt();
}
milesPerGallon = totalMiles / totalGallons;
System.out.printf("Your total mileage for these trips is: %.2f.\nYour total gas consumed on these trips was: %.2f.\n", totalMiles, totalGallons);
System.out.printf("Your total mileage for these trips is: %.2f MPG", milesPerGallon);
}
}
Mileagetest.java :
package gasMileage;
public class Mileagetest
{
public static void main(String[] args)
{
Mileage myMileage = new Mileage(1,0,0,0,0,0);
myMileage.calculateMileage();
}
}
Et maintenant, voici celui qui n'a pas d'éléments de définition ni d'éléments d'acquisition :
Testmileage.java :
package gasMileage;
import java.util.Scanner;
public class Testmileage
{
int restart = 1;
double miles = 0, milesTotal = 0, gas = 0, gasTotal = 0, mpg = 0;
Scanner input = new Scanner(System.in);
public void testCalculate()
{
while(restart == 1)
{
System.out.print("Please input miles: ");
miles = input.nextDouble();
milesTotal = milesTotal + miles;
System.out.print("Please input gas: ");
gas = input.nextDouble();
gasTotal = gasTotal + gas;
mpg = miles/gas;
System.out.printf("MPG: %.2f", mpg);
System.out.print("\nContinue? 1 = yes, 2 = no: ");
restart = input.nextInt();
}
mpg = milesTotal / gasTotal;
System.out.printf("Total Miles: %.2f\nTotal Gallons: %.2f\nTotal MPG: %.2f\n", milesTotal, gasTotal, mpg);
}
}
Testmileagetest.java :
package gasMileage;
public class Testmileagetest
{
/**
* @param args
*/
public static void main(String[] args)
{
Testmileage test = new Testmileage();
test.testCalculate();
}
}
Merci encore !
5 votes
+1 parce que vous essayez manifestement d'apprendre et de comprendre correctement les concepts.
1 votes
Eh... je suis un peu un geek comme ça je suppose... donnez-moi un devoir de physique et regardez à quelle vitesse je cherche une réponse rapide sur Google... donnez-moi un devoir de codage et regardez combien de temps je passe à chercher la raison pour laquelle ça marche ou pourquoi c'est mieux comme ça. Cela fait environ 3 jours que je réfléchis et que je cherche cette réponse.
1 votes
Je suis surpris que l'on ne vous ait pas enseigné l'encapsulation en C++. Elle s'y applique tout autant qu'en Java ou dans tout autre langage OO. J'irais donner du fil à retordre à votre professeur de C++ à ce sujet ;-).
0 votes
BTW, +1 pour votre attitude. J'ai déjà vu cette question posée auparavant et je respecte la façon dont vous l'abordez. D'autres personnes ont simplement adopté l'attitude suivante : "les régleurs/répartiteurs sont ridicules et constituent une perte de temps, pourquoi les utiliser ? Mon prof doit être un abruti et me forcer à faire quelque chose de ridicule". Vous comprenez clairement qu'il doit y avoir une raison, sinon ils ne l'enseigneraient pas de cette façon et vous avez tout à fait raison.