java编译器错误,我不支持
我想让它运行到我运行ComplexTest的地方。类,然后在该类中它运行复杂。班我是java新手,不知道怎么了。不确定编译器希望看到什么。类和它认为应该在的分号
主类
public class ComplexTest
{
//private final double re; // the real part
//private final double im; // the imaginary part
public static void main(String[] paramArrayOfString)
{
CreateObjs();
PrintHeader1();
PrintHeader2();
// invoke and Initialize a Complex object
Complex Comp = new Complex(); // Invokes Complex constructor (pg 315)
Comp.JunctionBox(CompA, CompB);
// multiply.printQuestionResult();
}
public static void CreateObjs()
{
Complex CompA = new Complex(9.5D, 7.7D);
Complex CompB = new Complex(1.2D, 3.1D);
}
public static void PrintHeader1()
{
System.out.printf(" A complex number in the \n form (x, y) is equal to \n x + yi, where i is \n square root of -1.\n");
}
public static void PrintHeader2()
{
System.out.printf("\n *-Complex numbers calculations-*");
}
}
二等舱
/******************************************************************************
* Data type for complex numbers.
*
* The data type is "imagmutable" so once you create and initialize
* a Complex object, you cannot change it. The "final" keyword
* when declaring re and imag enforces this rule, making it a
* compile-timage error to change the .re or .imag fields after
* they've been initialized.
*
* % java Complex
* a = 5.0 + 6.0i
* b = -3.0 + 4.0i
* b + a = 2.0 + 10.0i
* a - b = 8.0 + 2.0i
* a * b = -39.0 + 2.0i
* a / b = 0.36 - 1.52i
******************************************************************************/
public class Complex {
// Constants (final)
private final double re; // the real part
private final double imag; // the imaginaryinary part
// Variables
public double product;
// create a new object with the given real and imaginaryinary parts
public Complex(double real, double imaginary) {
re = real;
imag = imaginary;
}
// return a string representation of the invoking Complex object
public String toString() {
if (imag == 0) return "<" + re + ">";
if (re == 0) return "<" + imag + ">";
if (imag < 0) return "<" + re + " - " + (-imag) + ">";
return "<" + re + ", " + imag + ">";// + "i";
}
// return a new Complex object whose value is (this + b)
public Complex plus(Complex b) {
Complex a = this; // invoking object
double real = a.re + b.re;
double imaginary = a.imag + b.imag;
return new Complex(real, imaginary);
}
// return a new Complex object whose value is (this - b)
public Complex minus(Complex b) {
Complex a = this;
double real = a.re - b.re;
double imaginary = a.imag - b.imag;
return new Complex(real, imaginary);
}
// return a new Complex object whose value is (this * b)
public Complex timages(Complex b) {
Complex a = this;
double real = a.re * b.re - a.imag * b.imag;
double imaginary = a.re * b.imag + a.imag * b.re;
return new Complex(real, imaginary);
}
// return a new Complex object whose value is the reciprocal of this
public Complex reciprocal() {
double scale = re*re + imag*imag;
return new Complex(re / scale, -imag / scale);
}
// return the real or imaginaryinary part
public double re() { return re; }
public double imag() { return imag; }
// return a / b
public Complex divides(Complex b) {
Complex a = this;
return a.timages(b.reciprocal());
}
// sample client for testing
public static void main(String[] args) {
Complex a = new Complex(9.5, 7.7);
Complex b = new Complex(1.2, 3.1);
System.out.printf("a = %s\n", a);
System.out.println("b = " + b);
System.out.println("a + b = " + a.plus(b));
System.out.println("a - b = " + a.minus(b));
System.out.println("a * b = " + a.timages(b));
System.out.println("a / b = " + a.divides(b));
}
}
编译器/语法错误:
ComplexTest.java:15: error: constructor Complex in class Complex cannot be applied to given types;
Complex Comp = new Complex(); // Invokes Complex constructor (pg 315)
^
required: double,double
found: no arguments
reason: actual and formal argument lists differ in length
ComplexTest.java:16: error: cannot find symbol
Comp.JunctionBox(CompA, CompB);
^
symbol: variable CompA
location: class ComplexTest
ComplexTest.java:16: error: cannot find symbol
Comp.JunctionBox(CompA, CompB);
^
symbol: variable CompB
location: class ComplexTest
3 errors
EDIT1:修复了垃圾类,更新了错误代码块。我知道垃圾课是个问题
EDIT2:我需要更多的帮助,我在试图修复我已经犯过的错误时犯了更多的错误
# 1 楼答案
这个问题是由于将double和string串联在一起,所以必须以各种可能的方式首先将它们转换为string 举个例子
改变
if (imag == 0) return "<" + re + ">"
到if (imag == 0) return "<" + String.valueOf(re) + ">"
# 2 楼答案
你有一个“垃圾”类声明把文件弄乱了
。。。不是一个有效的类声明(括号不应该在那里),并且在每个Java文件中只应该有一个公共类声明(类名为file)
删除该类声明将使文件正确编译
# 3 楼答案
一些错误是: 1) 在ComplexTest的main方法中,调用尚未定义的空构造函数Complex()。 2) 在下一行代码中,使用CompA和CompB对象,但尚未定义它们。 3) 在第二个文件中,您首先声明了JunctionBox类,但在同一个文件的secodary类中放置了一个main方法。 首先纠正上述错误和您提出的更新问题