2017-07-18 8 views
0

私は自分の学習段階にあります。私はなぜlogcatのNull値を取得しているのかわかりません。 getN()を最初のコンストラクタと呼び出すと結果が表示されますが、2番目のコンストラクタで呼び出されたときにはNULL値が表示されます。してください、誰も私にこれを説明することができますか、私はこれについて詳細に読むことができるので、記事に私を指摘することができます。Null値を取得するlogcat

MainActivity.class

public class MainActivity extends AppCompatActivity { 
String G = "HELLo"; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    MyActivity s = new MyActivity(G); 
    MyActivity my = new MyActivity(); 
} 
} 

MyActivity.class

public class MyActivity { 
String N; 

public MyActivity(String g) { 
    this.N = g; 
} 

public MyActivity() { 
    getN(); 
} 


public void getN(){ 
    Log.e("WOFO",N); 
} 
} 
+0

2番目のコンストラクタでそれを呼び出すと、決して 'N'を初期化しないので、' null'の値を持ちます。 – azurefrog

+0

@azurefrogああ、私はそれを手に入れましたが、String GのString G値を得る方法はありますか? – Dam

+0

その文字列でオブジェクトを初期化したいのであれば、文字列を受け入れて自身を初期化するコンストラクタそれと? – azurefrog

答えて

0

あなたがMyActivity s = new MyActivity(G);を呼び出しているときにthis.N = g;Nを初期化するが、2回目の呼び出しでthis.N = g;はあなたので、初期化されていません最初のものと同じではないオブジェクトの新しいインスタンスを呼び出しています。

+0

オハク今私はそれを得るが、私はこの文字列G値を得ることができる方法はありますか? – Dam

関連する問題