2017-11-03 7 views
-2

多くのJava開発者と同様に、実際には嫌いな理論です。私は私のテストで学ぶ必要がある質問の一つは、間貴様です:Javaのインスタンス化と初期化の間の相違点

  • インスタンス化
  • 初期

私は変数を初期化、既知の変数に値を追加することです。

私がそれを調べると、インスタンス化は同じ意味を持っていました。私が見つけた唯一のものはメインについてのものでした。

これについてもっと知りましたか?

+2

ない: https://docs.oracle.com/javase/tutorial/java/javaOO/objectcreation.html – craigwor

答えて

0

インスタンス化は、新しいオブジェクト(インスタンス)の作成です。 初期化には次の2つの意味があります。

1)最初に変数に値を渡します。

2)新しいオブジェクトをインスタンス化するときにコンストラクタを呼び出す。例えば

Foo foo = new Foo(); 

newキーワードは、オブジェクト(インスタンス)を作成し、Foo()オブジェクト(オブジェクトの初期化)を初期化するために呼び出されるコンストラクタです。次に=演算子は、変数(変数の初期化)に値(オブジェクトへの参照)を渡します。答えのためのJavaのドキュメントをGoogleにハード

+0

、私はまだ取得していない一つのこと彼らです: は* *特殊オブジェクトとしての文字列** - '文字列; //宣言 ' - ' String text = null; //宣言と初期化 ' __String as object__ - ' String text = new String(null); //宣言と初期化。 //エラー ' - 'String text = new String(" TEXT "); //宣言、インスタンス化と初期化 ' –

+0

これで2つの行のうち正しいものが何であるか疑問に思っています: 'String text = new String(); //宣言とインスタンス化と初期化 ' または - 'String text = new String(); // Declaration&Instantiate' "' 'new String()' "は自動的に空のコンストラクタを生成するので、それを呼び出さないのですか? –

+0

これは**宣言とインスタンス化と初期化です。** 'new String()'を使うときには、新しいオブジェクトを作成し、それをインスタンス化して初期化する必要があります。しかし 'String str =" hello "'を実行すると、変数を宣言していますが、この行は別のStringをインスタンス化することもあれば、初期化もしないこともあります。 – Judger

関連する問題