À l'aide de méthodes getter et setter en Java
Essayer de créer un projet qui utilise la saisie de l'utilisateur et les informations de déterminer combien une voiture de location, les coûts par jour. Le problème, je vais avoir, c'est la location de voitures de classe ne semble pas être obtenir l'entrée à partir de la classe de test. Vous ne savez pas comment le résoudre.
classe de location de voitures
public class CarRental {
private String customerName;
private String ratingKey;
private double baseFactor;
private double basefactor;
private double fudge;
private double computeDailyFee;
public CarRental(String customerName, String ratingKey, double baseFactor, double fudge, double computeDailyFee) {
this.customerName = customerName;
this.ratingKey = ratingKey;
this.baseFactor = baseFactor;
this.basefactor = basefactor;
this.fudge = fudge;
this.computeDailyFee = computeDailyFee;
//intitialize
}
public String getcustomerName() {
return this.customerName;
}
public String getratingKey() {
return ratingKey;
}
public void setcustomerName(String newCustomerName) {
customerName = newCustomerName;
System.out.println(customerName);
}
public void setratingKey(String newRatingKey) {
ratingKey = newRatingKey;
System.out.println(ratingKey);
}
public double baseFactor() {
switch (ratingKey.charAt(0)) {
case 'S':
baseFactor = 1.0;
break;
case 'C':
baseFactor = 1.2;
break;
case 'U':
baseFactor = 1.4;
break;
case 'T':
baseFactor = 1.6;
break;
case 'B':
baseFactor = 2.0;
break;
default:
System.out.println("Invalid type");
break;
}
System.out.println(baseFactor);
return baseFactor;
}
public double fudge() {
switch (ratingKey.charAt(1)) {
case 'N':
fudge = 11.40;
break;
case 'V':
fudge = 0;
break;
default:
System.out.println("Invalid type");
break;
}
System.out.println(fudge);
return fudge;
}
public double computeDailyFee() {
computeDailyFee = (baseFactor() * (89.22 - fudge()));
System.out.println(computeDailyFee);
return computeDailyFee;
}
}
classe RentalTest
public class RentalTest {
public static void main(String[] args) {
CarRental rental = new CarRental("customerName", "ratingKey", 0.0, 0.0, 0.0);
String newCustomerName = rental.getcustomerName();
String newCustomerName = JOptionPane.showInputDialog("Enter your name");
//System.out.println(newCustomerName);
RentalTest rentaltest = new RentalTest();
JOptionPane.showMessageDialog(null, "Input code for model, then code for condition (No Spaces)");
String newRatingKey = JOptionPane.showInputDialog(
"Models: 'S' = Sub-compact 'C'=Car 'U'=SUV 'T'=Truck 'B'=Bigfoot\n"
+ "Condition: 'N'= New 'V' = Vintage");
newRatingKey = newRatingKey.toUpperCase();
//System.out.println(newRatingKey);
}
}
- Vous avez un problème avec
String newCustomerName = getcustomerName;
. Est-ce de la compilation? - Vous n'avez jamais déclaré et instancié un
CarRental
objet. Qui devrait être sur le seul domaine dans votre méthode principale. - Pouvez-vous nous donner le code qui compile, mais fonctionne de façon incorrecte? Je ne peux pas faire ici votre code de la compilation.
- cette habitude même de la compilation
- Pas de. Je ne comprends pas vraiment comment utiliser ces méthodes dans des classes différentes, j'ai juste mis qu'à essayer d'appeler la méthode get. N'a pas fonctionné.
- A pris cette ligne, il compile maintenant
- Avez-vous le compiler, ou êtes-vous juste deviner?
- J'ai compilé. Il affiche les invites au moins, et ne donnent pas toutes les erreurs.
- Ensuite, vous devez avoir un autre aller à la collant; car le code qui est actuellement dans votre question n'a absolument PAS compiler.
- Il l'a fait quand j'ai d'abord déclaré qu'il compile. Les lignes qui ont été ajoutées sont les lignes suggérées par SlightlyCuban (ci-dessous). Sauf ceux, ça compile, mais ne fait pas ce que je veux faire.
- J'aurais aimé être en mesure de ramasser votre code, de les exécuter, peut-être l'aide d'un débogueur et que le fait de savoir quel est le problème avec elle. Mais si le code que vous publiez dans votre question est différente à partir du code que vous êtes effectivement en cours d'exécution, il est BEAUCOUP plus difficile de le faire, et donc pour vous aider. Je ne suis pas en train de venir à travers comme en colère; je suis en train de vous donner la meilleure aide que je peux. Mais la publication de code que le code qui est en fait en vous donnant le problème est plus difficile pour tout le monde. Si vous voulez les gens à vous aider, il vous aide à les aider.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez essayer quelque chose comme cela;
CarRental
, pasRentalTest
, agetCustomerName
.Vous avez besoin pour réellement construire un exemple de
CarRental
, puis obtenir le nom. Dansmain
:newCustomerName
ailleurs, c'est tout.String
s sont prêts à votre constructeur. Vous devez soigneusement étape par le biais de votre code et de comprendre ce qui se passe.Il y a beaucoup d'erreurs dans ce programme , essayer de ré afficher le code de votre les deux, la classe est déclarée public car il ne fonctionnera pas dans un seul programme java et
ce code ci-dessus alos donner d'erreur de compilation .
Ici, je thnk getCustomerName est une méthode de sorte qu'il devrait être déclarée comme une méthode comme ceci
et pour y accéder essayer de créer l'objet de la location de voitures de classe et même si vous n'avez pas initialiser le membre de l'instance de la location de voitures de classe ainsi en passant la valeur dans le constructeur.