Je suis nouveau à Java et honnêtement son objectif POO est assez pénalisantes pour moi en ce moment.
Pour un projet Uni où nous sommes censés pratiquer cette mise au point, je suis chargé de la création d'au moins 2 classes: une classe doit être pour un client de la compagnie aérienne et l'autre classe devrait contenir des méthodes pour enregistrer leur achat.
J'ai un fichier principal, une classe Persona (personne), et une classe RegistroCompra (enregistrement d'achat). Personne est censé avoir tous les attributs suivants, que je suis la manipulation des variables privées de sorte que tous les cas de la personne peut obtenir un de leur propre. (Les attributs qu'on leur demande sont des choses comme données personnelles, numéro de billet, numéro de siège et autres)
public class Persona {
private String nombrePasajero;
private String apellidoPasajero;
private String generoPasajero;
private String pasaportePasajero;
private String numTiquetePasajero;
private String numVueloPasajero;
private String destinoPasajero;
private String asientoString;
private int precioBoleto;
private int edadPasajero;
private int numAsientoPasajero;
//Constructor
public Persona(String nombre, String apellido, String genero, int edad, String pasaporte) {
nombrePasajero = nombre;
apellidoPasajero = apellido;
generoPasajero = genero;
pasaportePasajero = pasaporte;
edadPasajero = edad;
}
public void setDestino() {
destinoPasajero = RegistroCompra.obtenerDestino();
}
Et ma classe RegistroCompra, qui vise à définir les données relatives aux renseignements personnels non, mais les informations de destination, numéro de vol et tel. Tous l'ensemble de données RegistroCompra doit être puisée par Persona, parce que Persona sera imprimé en principal de vérifier toutes les informations.
public class RegistroCompra {
private String destino;
public void seleccionarDestino() {
Scanner input = new Scanner(System.in);
System.out.println("Por favor digite el destino, las opciones actuales son Nicaragua o Panama\n");
String destino = input.nextLine();
}
public String obtenerDestino() {
return destino;
}
}
Cependant, je reçois une erreur à la méthode Persona.setDestino (), en disant « méthode non statique obtenerDestino ne peut pas être référencé à partir du contexte astatique »
Je ne comprends pas pourquoi cela se passe. Si je tente de tourner RegistroCompra.obtenerDestino () dans une méthode statique, je reçois une erreur parce que « Destino est une variable non statique », mais il est d'être défini comme public dans la classe RegistroCompra ...
Vous devez faire quelque chose comme ci-dessous:
public class Persona {
...
//You should have instance of RegistroCompra
RegistroCompra registraCompra = new RegistroCompra();
public void setDestino() {
//Option 1: Explicitly call the method
registraCompra.seleccionarDestino();
destinoPasajero = registraCompra.obtenerDestino();
}
}
public class RegistroCompra {
private String destino;
public RegistroCompra(){
//Option 2 : Call the method in constructor
registraCompra();
}
public void seleccionarDestino() {
...
//Set the input to the class level variable destino
this.destino = input.nextLine();
}
public String obtenerDestino() {
return this.destino;
}
}