我正在尝试用Java编译代码以返回一个布尔值,他正在调用另外两个方法,但是,由于一些奇怪的原因,它没有识别方法的名称。
编译器发给我这个错误: 找不到符号,方法transaccionMaquina(Producto,Tarjeta)
以下是代码:
import java.util.Scanner;
public class Maquina
{
Maquina ()
{
}
public boolean transaccionMaquina(Tarjeta TjtNuevo, Producto PrdNuevo)
{
if (PrdNuevo.getPrecio()<= TjtNuevo.getSaldoTarjeta())
{
PrdNuevo.setStock(PrdNuevo.getStock()-1);
TjtNuevo.setSaldoTarjeta(TjtNuevo.getSaldoTarjeta()-PrdNuevo.getPrecio());
return true;
}
else
{
return false;
}
}
}
任何问题,建议或建设性的批评,都会非常感激
这是拥有我正在调用
方法的类的代码这是我正在尝试添加它的菜单类中的地方
// MÉTODOS (Ver Después)
public boolean ventaEfectivo(Producto PrdNuevo, Cliente ClntNuevo)
{
int intPrecio = PrdNuevo.getPrecio();
int intDineroDisponible = ClntNuevo.getDineroDisponible();
int intStock = PrdNuevo.getStock();
if (intDineroDisponible>=intPrecio)
{
intDineroDisponible = intDineroDisponible - intPrecio;
ClntNuevo.setDineroDisponible(intDineroDisponible);
intStock = intStock - 1;
PrdNuevo.setStock(intStock);
return true;
}
else
{
return false;
}
}
public boolean pagoProducto(Producto PrdNuevo, Cliente ClntNuevo, Tarjeta TjtNuevo, int intOpcion)
{
switch(intOpcion) {
case 1:
return ventaEfectivo(PrdNuevo, ClntNuevo);
break;
case 2:
return transaccionMaquina(PrdNuevo, TjtNuevo);
break;
default:
}
}
提前致谢。
答案 0 :(得分:0)
您的参数以原始方法定义:
public boolean transaccionMaquina(Tarjeta TjtNuevo, Producto PrdNuevo)
你这样称呼它:
return transaccionMaquina(PrdNuevo, TjtNuevo);
简而言之,争论是相反的。
答案 1 :(得分:0)
您在调用方法时已经互换了参数,因此与方法签名不匹配:
public boolean transaccionMaquina(Tarjeta TjtNuevo, Producto PrdNuevo) { ... }
public boolean pagoProducto(Producto PrdNuevo, Cliente ClntNuevo, Tarjeta TjtNuevo, int intOpcion){
...
case 2: return transaccionMaquina(PrdNuevo, TjtNuevo);
....
}
答案 2 :(得分:0)
你的片段对我来说不是很清楚。根据我的解释,调用transaccionMaquina()的代码在另一个类中,可能这些类不在层次结构中。你需要创建一个Maquina类的对象。然后使用它调用transaccionMaquina。
Maquina m = new Maquina();
m.transaccionMaquina()
你可能应该阅读面向对象的编程来清除你的概念