- 締切済み
print("A"); とリテラルとデータ型
リテラルとデータ型について質問します。 インプレス社の問題集で次の解説を見ました。(一部抜粋) 「Javaのリテラルは、デフォルトでは、整数値であればint型、.. 文字であればchara型のデータとして扱われます。」 よく見掛けるコードに次のようなものがあると思います。 System.out.println("A"); この時の文字列A(今回は便宜的に1文字にしています。)は、 変数などで特にデータ型の指定をしていませんが、 JavaのデフォルトとしてString型として扱われる、と考えて良いのでしょうか? Javaのデフォルトのリテラルの扱い、特に「デフォルトの」というところが 明確にわからずにいます。「デフォルトの」というのは、私が上記で例示したような 「データ型指定しない場合」ということでいいのでしょうか…。 解説をお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- mpro-gram
- ベストアンサー率74% (170/228)
java では、 "" のように、たとえ空でもダブルクォートでくくられた文字列は、String型インスタンス(つまりオブジェクト型)となるので、リテラルではありません。 シングルクォートでくくる 'c' は char型リテラルです。くくってない c は変数名と見なされるので、「文字ならchar型」っていうのは、なんか変、説明文の読み取り不足を感じる。'0' もシングルクォートでくくっていればchar型。 0 は int型リテラル 0L のようにLを後ろにつけるとlong型です。 0D のようにDを後ろにつけるとdouble型です。 数値に関しては、小数点のない整数は defaultでint型と見なされる。int型の最大値を超えるリテラル整数は終端に L 必須。 小数点があれば、double型と見なされます。 例 char c = '0'; // ascii コードの 0x0030 が格納されている int i = 0; long l = 1L; double d= 1D; 上記 = の右辺がリテラルです。