Java 调用方法时找不到符号
我有两个独立的java文件,但都在同一个文件夹中,所以调用方法应该很容易。问题就在这里Java 调用方法时找不到符号,java,methods,Java,Methods,我有两个独立的java文件,但都在同一个文件夹中,所以调用方法应该很容易。问题就在这里 paDelimo = nota.vrniOktavo() + nota.vrniIndeks() + this.razmak * indeks; 这里写着找不到符号。它告诉我,nota.vrniOktavo()调用有问题,它所做的是在另一个Java文件中调用一个方法。我不知道它为什么不起作用 电话应该是什么样子的?它正在调用下面代码中包含的方法。在这段代码下面,您还可以找到问题行所属文件的全部代码
paDelimo = nota.vrniOktavo() + nota.vrniIndeks() + this.razmak * indeks;
这里写着找不到符号。它告诉我,nota.vrniOktavo()调用有问题,它所做的是在另一个Java文件中调用一个方法。我不知道它为什么不起作用
电话应该是什么样子的?它正在调用下面代码中包含的方法。在这段代码下面,您还可以找到问题行所属文件的全部代码
public class Nota{
private int oktava;
private int indeks;
public Nota(int oktava, int indeks){
this.oktava = oktava;
this.indeks = indeks;
}
public int vrniOktavo(){
return this.oktava;
}
public int vrniIndeks(){
return this.indeks;
}
}
下面是代码的其余部分,来自不起作用的部分
public class Lestvica{
private int razmak;
private Nota zacetnaNota;
public Lestvica(Nota zacetnaNota, int razmak){
this.zacetnaNota = zacetnaNota;
this.razmak = razmak;
}
public Nota clen(int indeks){
int paDelimo = 0;
int dobljenaOktava = 0;
int dobljeniIndeks = 0;
paDelimo = nota.vrniOktavo() + nota.vrniIndeks() + this.razmak * indeks;
dobljenaOktava = paDelimo / 12;
dobljeniIndeks = paDelimo % 12;
Nota drugaNota = new Nota(dobljenaOktava, dobljeniIndeks);
return drugaNota;
}
您的问题是一个未声明的变量 在方法中
public Nota clen(int indeks){
int paDelimo = 0;
int dobljenaOktava = 0;
int dobljeniIndeks = 0;
paDelimo = nota.vrniOktavo() + nota.vrniIndeks() + this.razmak * indeks;
// code continues
}
您正试图从名为nota
的对象中为变量paDelimo
分配一个值,该值在方法范围内未创建或不可用。该类中唯一可用的类Nota
实例是zacetnota
。但是您正在尝试从nota
读取
因此,如果您混淆了变量的名称,请将该行重写为
paDelimo = zacetnaNota.vrniOktavo() + zacetnaNota.vrniIndeks() + this.razmak * indeks;
或者创建
Nota
类的另一个实例,名为Nota
,以解决缺少的引用。您希望在Lesvica类中调用Zacetnota,而不是Nota
以下是固定代码:
public class Lestvica {
private int razmak;
private Nota zacetnaNota;
public Lestvica(Nota zacetnaNota, int razmak) {
this.zacetnaNota = zacetnaNota;
this.razmak = razmak;
}
public Nota clen(int indeks) {
int paDelimo = 0;
int dobljenaOktava = 0;
int dobljeniIndeks = 0;
paDelimo = zacetnaNota.vrniOktavo() + zacetnaNota.vrniIndeks() + this.razmak * indeks;
dobljenaOktava = paDelimo / 12;
dobljeniIndeks = paDelimo % 12;
Nota drugaNota = new Nota(dobljenaOktava, dobljeniIndeks);
return drugaNota;
}
nota
未定义。您有一个名为zacetnonata
的Nota
实例,因此您应该编写:
paDelimo = zacetnaNota.vrniOktavo() + zacetnaNota.vrniIndeks() + this.razmak * indeks;
或者您可以为zacetnaNota实现getter:
private Nota zacetnaNota;
public Nota getZacetnaNota() {
return zacetnaNota;
}
然后: paDelimo = getZacetnaNota().vrniOktavo() + getZacetnaNota().vrniIndeks() + this.razmak * indeks;
谢谢你的回复。我想它应该是zacetnaNota,而不仅仅是“nota”。Z3br3 nota是不需要循环使用的变量,您需要将“nota”更改为“zacetnaNota”。(或者,我假设是这样的。Eclipse告诉我它将不使用)。请接受您认为最有用的答案。单击答案旁边的复选标记。干杯哎呀,我把nota改成了zacetnota,效果很好!谢谢你的帮助。谢谢你的帮助!