2016-03-26 6 views
-1

私はそれがComplexTest.classを実行し、次にそのクラスでComplex.classを実行する場所に動作させたいと思います。私はJavaでかなり新しいです。何が間違っているのか分かりません。コンパイラが.classとセミコロンを見なければならない理由をよく分からないところでは、それはそうするべきだと思います。コンパイラのエラー、私は保証しません

メインクラス

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-*"); 
    } 
} 

2級

/****************************************************************************** 
* 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:私はもっと助けが必要です。私は既に持っているものを修正しようとすると、より多くのエラーを作り出しています。

+0

そのJunctionBoxクラスを削除します。 –

+0

1.)Complex.classには引数なしコンストラクタが必要です 2)main()はCreateObj()で作成したものを見ることができません。範囲外です。したがって、CreateObjs()を取り除き、main()内でCompA&CompBを直接構築してください – Phileo99

+0

答えは回答セクションにあるはずです –

答えて

1

"ジャンク"クラスの宣言がファイルを乱しています。

public class JunctionBox() { 

} 

...(括弧はあってはならない)で開始する有効なクラス宣言ではなく、あなただけの単一のパブリッククラス宣言を持っている必要があります - ファイルとして指定されたクラスで - 各Javaでファイル。

このクラス宣言を削除すると、ファイルが正しくコンパイルされます。

+0

不要なクラスを削除しました(クラスでも関数であってはならない) – GeekyDewd

0

問題は、あなたが

変更 if (imag == 0) return "<" + re + ">" if (imag == 0) return "<" + String.valueOf(re) + ">"

0

に、次のように例えば可能なあらゆる方法で、文字列に最初の をそれらを変換する必要があるため、ダブル、文字列の連結を有することにありますいくつかのエラーは: )1)あなたがまだ定義していない空のコンストラクタコンプレックス()を呼び出すComplexTestのメインメソッドです。 2)次のコード行でCompAオブジェクトとCompBオブジェクトを使用しますが、それらを定義していません。 3)2番目のファイルでは、JunctionBoxクラスを最初に宣言しますが、mainメソッドメソッドを同じファイルの2次クラスに入れます。 最初に上記のエラーと問題のアップデートを修正してください。

+1

#1のためにMultiply3Testが見える別のプログラムを作った等: >パブリッククラスMultiply3Test { > >公共の静的な無効メイン(文字列[] paramArrayOfString){ > // Multiply3オブジェクトを起動して初期化 > Multiply3乗算=新しいMultiply3()。 // Multiply3を呼び出し>コンストラクタ(pg 315) > multiply.quiz(); > multiply.printQuestionResult(); >} > >} – GeekyDewd

+1

誰かが私のためにこれをフォーマットしている、ウェブサイトの悪臭 – GeekyDewd

関連する問題