私はユーザーからの入力を受け取り、それらを表示する単純なアプレットプログラムを作成していました。 `初期化が大丈夫であることなく、他の文字列変数S1を宣言しながら、strの変数はnullに宣言する必要がありますされていることを理由paint()メソッドで 文字列変数を初期化する必要があり、javaで宣言する際に初期化を必要としないことがあるのはなぜですか?
public void init(){
text1=new TextField(8);
add(text1);
text1.setText("0");
}
public void paint(Graphics g){
int x=0;
String s1,str = null;
g.drawString("input in the box",10,50);
try{
s1=text1.getText();
str=String.valueOf(s1);
}
catch(Exception e){}
g.drawString(str,75,75);
}
public boolean action (Event event,Object object){
repaint();
return true;
}
`
? ITはstr変数を初期化せずにコンパイルしません。
)の初期化を必要とせず、(関数やコンストラクタの内側にある)のみのローカル変数が初期化される必要がある* *「なぜstrの変数はnullに宣言されなければならないということです」FWIW、 '= null'ビットは*宣言*ではなく、*初期化*です。 –
これは両方の変数をstrだけでなくnullに初期化しています。さまざまな方法で変数を宣言できます。これを参照してください:http://www.learnjavaonline.org/en/Variables_and_Types – Phobos
@Phobosこれは最後の変数にのみ適用されます。両方を初期化するには 'String s1 = null、str = null;'が必要です。 –