我有两个单独的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;
}
答案 0 :(得分:3)
nota
是不分割的。您有一个名为Nota
的{{1}}实例,因此您应该写:
zacetnaNota
答案 1 :(得分:2)
您的问题是未声明的变量。
方法
public Nota clen(int indeks){
int paDelimo = 0;
int dobljenaOktava = 0;
int dobljeniIndeks = 0;
paDelimo = nota.vrniOktavo() + nota.vrniIndeks() + this.razmak * indeks;
// code continues
}
您正在尝试为名为paDelimo
的对象分配变量nota
,该值在方法范围内未创建或可用。此类中唯一可用的类Nota
实例为zacetnaNota
。但是你试图从nota
读取。
因此,如果您混淆了变量的名称,请将该行重写为
paDelimo = zacetnaNota.vrniOktavo() + zacetnaNota.vrniIndeks() + this.razmak * indeks;
或者创建Nota
类的另一个实例,名为nota
,以解决缺少的引用。
答案 2 :(得分:2)
或者您可以为zacetnaNota
实施getter:
private Nota zacetnaNota;
public Nota getZacetnaNota() {
return zacetnaNota;
}
然后:
paDelimo = getZacetnaNota().vrniOktavo() + getZacetnaNota().vrniIndeks() + this.razmak * indeks;
答案 3 :(得分:1)
你想在Lestvica课堂上打电话给zacetnaNota而不是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;
}