无法找到符号-尝试调用方法时出错

时间:2018-12-28 23:10:06

标签: java class

首先这里是我的方法:

    public static Complex plus(ComplexNumber a, ComplexNumer b) {
    double real = a.r + b.r;
    double imaginar = a.i + b.i;
    ComplexNumber sum = new ComplexNumber (real, imaginar);
    return sum;
}

当我尝试在主类中调用它时,我无法。错误:“找不到符号” System.out.println(plus); //不起作用。

如果有人想要完整的代码,我可以放它,但是变量不是英文,所以..对不起

这是我的综合类:(变量不是英语):

public class KompleksniBroj {

private double r;
private double i;

public KompleksniBroj() {
}

public KompleksniBroj(double realan, double imaginarni) {
    this.r = realan;
    this.i = imaginarni;
}

public double getR() {
    return r;
}

public void setR(double r) {
    this.r = r;
}

public double getI() {
    return i;
}

public void setI(double i) {
    this.i = i;
}

public static KompleksniBroj plus(KompleksniBroj a, KompleksniBroj b) {
    double realan = a.r + b.r;
    double imaginarni = a.i + b.i;
    KompleksniBroj sum = new KompleksniBroj(realan, imaginarni);
    return sum;
}

public KompleksniBroj konjugovan() {
    return new KompleksniBroj(r, -i);
}

@Override
public String toString() {
    return "KompleksniBroj{" + "r = " + r + ", i = " + i + '}';
}

}

主类:

    public static void main(String[] args) {
    KompleksniBroj a = new KompleksniBroj(5.0, 6.0);
    KompleksniBroj b = new KompleksniBroj(-3.0, 4.0);

    System.out.println(plus(a, b));

    }

3 个答案:

答案 0 :(得分:2)

plus()是类KompleksniBroj的静态方法。不是Main类的静态方法。因此,要从Main进行调用,您需要使用

KompleksniBroj.plus(...)

System.out.println(KompleksniBroj.plus(a, b));

答案 1 :(得分:0)

您需要使用具有静态方法的类名来调用该方法。

如果class Astatic void foo()之外有一个名为class A的方法,则需要这样调用:A.foo()

所以在您的情况下:KompleksniBroj.plus(a, b)

答案 2 :(得分:0)

方法plus()是类KompleksniBroj的静态方法。
使用通过类名称限定的名称:

KompleksniBroj.plus()

但是您还需要提供2个参数,这些参数必须正确初始化KompleksniBroj对象,例如:

KompleksniBroj k1 = new KompleksniBroj(1, 1);
KompleksniBroj k2 = new KompleksniBroj(2, 2);

如果您在toString()类中正确定义了KompleksniBroj方法,则可以调用:

System.out.println(KompleksniBroj.plus(k1, k2));