0

例はコースからのもので、Javaで2つのオブジェクトを比較するためのものです。

public class Complex {

    ...

    public boolean equals (Object obj) {
        if (obj instanceof Complex) {    // if obj is "Complex" (complex number) 
            Complex c =  (Complex) obj   // No idea
            return (real == c.real) && (imag == c.imag); 
            // I'm guessing real means [this].real
        }
        return false;
    }
}

だから、私の質問は:「これはどういう意味ですか:Complex c = (Complex) obj実際にはどういう意味ですか?」

また、私はpythonとc ++を使用してきましたが、javaは私にとって新しいものです。

4

4 に答える 4

2

インラインで私のコメントを参照してください。

    public class Complex {

...

public boolean equals (Object obj) {
    if (obj instanceof Complex) {    // you first need to check whetever the obhect passed to the equal method is indeed of type "Complex" because i guess what you want here is to compare two Complex objects.
        Complex c =  (Complex) obj   // If the object is complex then you need to treat it as complex so cast it to Complex type in order to compare the "real" and "imag" values of the object.
        return (real == c.real) && (imag == c.imag); 
        // I'm guessing real means [this].real
        // yes, it does.
    }
    return false;
}

}

詳しくtype castingこちらをご覧ください

boxing and unboxingコンセプトも確認できます。

これがお役に立てば幸い、ダン

于 2012-10-20T10:57:49.420 に答える
2
obj instanceof Complex  

これは、objがComplexまたはそのサブクラスのインスタンスである可能性があることを意味します。

Complex c =  (Complex) obj  

サブクラスオブジェクトの場合は、Complexクラスオブジェクトに型キャストしていることを意味します

于 2012-10-20T10:51:36.213 に答える
1

Objectこれは、入力タイプをタイプにキャストすることを意味します。この行の後に、クラスComplexのすべてのAPIを使用できます。Complex

于 2012-10-20T10:51:58.120 に答える
0
  Complex c =  (Complex) obj  

Typecasting Complexは、オブジェクトobjタイプをComplexタイプにキャストするクラスです。

JavaへのC++ 参照の参照については、このリンクを参照できます

'間違っている場合は私を訂正してください

于 2012-10-20T11:00:09.847 に答える