-3

この声明は有効ですか?

int obj=new someMethod();

また、次のように、異なる参照とコンストラクターを使用してオブジェクトを作成すると、どのような違いが生じるかを知りたいです。

Object obj=new otherObject();

私はそれがどのように違うかを意味します

Object obj=new Object();

「someMethod」は別のクラス「someMethod」のコンストラクターであり、「otherObject」はクラス「otherObject」のコンストラクターでもあります。オブジェクトはクラスです。

4

3 に答える 3

2

someMethodクラスのメソッドである野生の推測を取ります。たとえば、次のようになります。

int someMethod() {
    // Code here
}

...そしてそれotherObjectはクラスのインスタンスです。そうでない場合、これらのステートメントはどちらも有効ではありません。

Java では、newキーワードを使用してクラスのインスタンスを作成します。クラスはメソッドではなく、オブジェクトでもありません。

ステートメント:

Object obj = new Object();

Objectクラスであるため、有効で機能します。

もちろん、 ifotherObjectclassの場合:

class otherObject {
    // Methods and such here
}

...thenObject obj = new otherObject();は有効なステートメントです。すべてのクラスは から派生するため、として宣言された変数にインスタンスをObject割り当てても問題ありません。Java では、圧倒的な慣習として、クラス名に最初にキャメルケースを使用することになっていることに注意してください( .otherObjectObjectOtherObjectotherObject

一歩下がって、クラス、インスタンス、メソッドなどを説明する適切な Java 入門チュートリアルを読むことをお勧めします。

于 2013-03-15T07:37:38.883 に答える
1

int obj=新しい someMethod(); 有効じゃない。int はクラスではなくデータ型です。int から継承できないため、someMethod が int クラス/オブジェクトになることはありません。

someMethod がメソッドの場合 (名前が示すように:)

int intObj = someMethod();

someMethod が戻り、次のように int の場合:

int someMethod()
{
    return 5;
}

baseObject obj=新しい otherObject(); クラス「otherObject」が「baseObject」から継承することを意味します。たとえば、Animal クラスがある場合、Dog などのクラスはそれを継承できるため、

Animal spot = new Dog();

しかし、あなたは持つことができません

Dog spot = new Animal();

Java継承を説明するリンクは次のとおりです: http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html

すべてのクラスは Object から継承されるため、Object obj = new OtherObject(); 有効です

于 2013-03-15T07:39:21.270 に答える
0
int obj=new someMethod();

クラスのオブジェクトを作成するときに、基本データ型を割り当てることができないため、無効です。

Object obj=new otherObject();

クラスのオブジェクトはそれ自身の型またはそのスーパークラスに割り当てることができ、Objectクラスはすべてのスーパークラスであるため、有効です。

于 2013-03-15T07:44:49.393 に答える