Ich bin neu in Java und ehrlich sein OOP Fokus ganz für mich im Moment belasten.
Für ein Uni-Projekt, wo wir diesen Fokus üben gemeint sind, bin ich mit dem Erstellen von mindestens zwei Klassen Aufgabe: Eine Klasse für eine Fluggesellschaft Kunde und die anderen Klasse sollen Methoden enthalten registrieren ihren Kauf sein sollte.
Ich habe eine Hauptdatei, eine Persona (Person) Klasse und eine RegistroCompra (Purchase Registrierung) Klasse. Person soll alle folgenden Eigenschaften haben, die ich als private Variablen bin Handhabung, so dass jede Instanz von Person kann einen ihrer eigenen bekommen. (Die Attribute gefragt, für sind Sachen wie personenbezogene Daten, Ticketnummer, Sitznummer und so weiter)
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();
}
Und meine RegistroCompra-Klasse, die die Daten zu setzen gemeint ist die nicht-personenbezogenen Daten, sondern auf die Informationen des Ziels, Flugnummer und so weiter. Alle Satz der Daten in RegistroCompra hat von Persona geholt werden, weil nur Persona in Haupt gedruckt werden alle Informationen zu überprüfen.
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;
}
}
Allerdings habe ich einen Fehler am Persona.setDestino () -Methode erhalten, sagen „nicht-statische Methode obtenerDestino kann nicht von astatic Kontext verwiesen werden“
Ich verstehe nicht, warum dies vor sich geht. Wenn ich versuche, RegistroCompra.obtenerDestino () in eine statische Methode zu drehen, ich eine Fehlermeldung erhalten, weil „destino eine nicht statische Variable ist“, aber es wird als öffentlich in der RegistroCompra Klasse definiert ...
Sie haben etwas zu tun, wie unten:
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;
}
}