Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 调用方法时找不到符号_Java_Methods - Fatal编程技术网

Java 调用方法时找不到符号

Java 调用方法时找不到符号,java,methods,Java,Methods,我有两个独立的java文件,但都在同一个文件夹中,所以调用方法应该很容易。问题就在这里 paDelimo = nota.vrniOktavo() + nota.vrniIndeks() + this.razmak * indeks; 这里写着找不到符号。它告诉我,nota.vrniOktavo()调用有问题,它所做的是在另一个Java文件中调用一个方法。我不知道它为什么不起作用 电话应该是什么样子的?它正在调用下面代码中包含的方法。在这段代码下面,您还可以找到问题行所属文件的全部代码

我有两个独立的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,效果很好!谢谢你的帮助。谢谢你的帮助!