No se puede llamar al método de otra clase en Java

Dasphillipbrau:

Soy nuevo en Java y honestamente su enfoque programación orientada a objetos es bastante exigente para mí en este momento.

Para un proyecto de Uni donde estamos destinados a la práctica de este enfoque, estoy encargado de la creación de al menos 2 clases: Una clase debe ser para un cliente de avión y la otra clase debe contener métodos para registrar su compra.

Tengo un archivo principal, una clase Persona (Person), y una clase RegistroCompra (registro de compra). Persona se supone que tiene todos los siguientes atributos, que me la manipulación de las variables privadas para que cada instancia de persona puede obtener uno de los suyos. (Los atributos que se les solicite son cosas como los datos personales, número de billete, el número de asiento y tal)

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();
    }

Y mi clase RegistroCompra, que está destinado a ajustar los datos relacionados no a la información personal, sino a la información de destino, número de vuelo y tal. Todo el conjunto de datos en RegistroCompra tiene que ser recuperado por Persona, porque sólo Persona será impreso en el principal para verificar toda la información.

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;
    }

}

Sin embargo, me da un error en el método Persona.setDestino (), diciendo "método no estático obtenerDestino no se puede hacer referencia a partir del contexto astatic"

No entiendo por qué esto está ocurriendo. Si trato de convertir RegistroCompra.obtenerDestino () en un método estático, me da un error porque "destino es una variable no estática", pero ha de ser definida como pública en la clase RegistroCompra ...

royalghost:

Usted tiene que hacer algo, como a continuación:

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;
    }

}


Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=478574&siteId=1
Recomendado
Clasificación