Java 编译错误,但我可以';我找不到原因
我试着用Java编译一段代码来返回一个布尔值,他调用了另外两个方法,但是,出于一些奇怪的原因,他无法识别这个方法的名称 编译器向我发送此错误: 找不到符号,方法transaccionMaquina(Producto,Tarjeta) 代码如下:Java 编译错误,但我可以';我找不到原因,java,compilation,Java,Compilation,我试着用Java编译一段代码来返回一个布尔值,他调用了另外两个方法,但是,出于一些奇怪的原因,他无法识别这个方法的名称 编译器向我发送此错误: 找不到符号,方法transaccionMaquina(Producto,Tarjeta) 代码如下: import java.util.Scanner; public class Maquina { Maquina () { } public boolean transaccionMaquina(Tarjeta TjtN
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;
}
}
}
提前感谢。您的参数在原始方法中定义如下:
public boolean transaccionMaquina(Tarjeta TjtNuevo, Producto PrdNuevo)
return transaccionMaquina(PrdNuevo, TjtNuevo);
你这样称呼它:
public boolean transaccionMaquina(Tarjeta TjtNuevo, Producto PrdNuevo)
return transaccionMaquina(PrdNuevo, TjtNuevo);
简而言之,参数是相反的。调用方法时交换了参数,因此与方法签名不匹配:
public boolean transaccionMaquina(Tarjeta TjtNuevo, Producto PrdNuevo) { ... }
public boolean pagoProducto(Producto PrdNuevo, Cliente ClntNuevo, Tarjeta TjtNuevo, int intOpcion){
...
case 2: return transaccionMaquina(PrdNuevo, TjtNuevo);
....
}
你的片段我不太清楚。根据我的解释,调用transaccionMaquina()的代码位于另一个类中,这些类可能不在层次结构中。您需要创建一个Maquina类的对象。然后用它给transaccionMaquina打电话
Maquina m = new Maquina();
m.transaccionMaquina()
您可能应该阅读面向对象编程来明确您的概念您调用的
transaccionMaquina(Producto,Tarjeta)
,但是方法签名是transaccionMaquina(Tarjeta,Producto)
。。。您现在看到错误了吗?您的方法声明为transaccionMaquina(Tarjeta-TjtNuevo,Producto-PrdNuevo)
,但您的方法调用使用的是(PrdNuevo,TjtNuevo)
。转换你的论点。介意解释一下-1吗?因为两个答案都“立即”被否决了,我想选民不会告诉你为什么。是的,这很烦人。@Tom,很高兴知道——只是想确保我没有误解你的意图。有时候,你会因为没有(明显的)原因而被否决。我们对此无能为力,但既然你已经在这里呆了一段时间,我想你已经知道:D.很酷——上次我被否决是因为我完全误解了这个问题:我同意参数混淆,但基于代码不能说pagoProducto()在同一个类中。他也需要调查一下。