【发布时间】:2020-05-27 13:21:17
【问题描述】:
我是 Java 新手,老实说,它的 OOP 重点目前对我来说相当费力。
对于一个我们旨在实践这一重点的 Uni 项目,我的任务是创建至少 2 个类: 一个类应该是针对航空公司客户的,另一个类应该包含注册他们购买的方法。
我有一个主文件、一个 Persona(人)类和一个 RegistroCompra(购买注册)类。 Person 应该具有以下所有属性,我将其作为私有变量处理,以便 Person 的每个实例都可以获得自己的一个。 (要求的属性是个人数据、票号、座位号等)
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();
}
还有我的 RegistroCompra 类,它的目的是设置与个人信息相关的数据,而不是与目的地、航班号等信息相关的数据。 RegistroCompra 中的所有数据集都必须由 Persona 获取,因为只有 Persona 会打印在 main 中以验证所有信息。
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;
}
}
但是,我在 Persona.setDestino() 方法中遇到错误,提示“无法从静态上下文引用非静态方法 obtenerDestino”
我不明白为什么会这样。如果我尝试将 RegistroCompra.obtenerDestino() 转换为静态方法,我会收到一个错误,因为“destino 是一个非静态变量”,但它在 RegistroCompra 类中被定义为公共...
【问题讨论】:
标签: java class methods static non-static