• 締切済み

print("A"); とリテラルとデータ型

リテラルとデータ型について質問します。 インプレス社の問題集で次の解説を見ました。(一部抜粋) 「Javaのリテラルは、デフォルトでは、整数値であればint型、..  文字であればchara型のデータとして扱われます。」 よく見掛けるコードに次のようなものがあると思います。 System.out.println("A"); この時の文字列A(今回は便宜的に1文字にしています。)は、 変数などで特にデータ型の指定をしていませんが、 JavaのデフォルトとしてString型として扱われる、と考えて良いのでしょうか? Javaのデフォルトのリテラルの扱い、特に「デフォルトの」というところが 明確にわからずにいます。「デフォルトの」というのは、私が上記で例示したような 「データ型指定しない場合」ということでいいのでしょうか…。 解説をお願いします。

みんなの回答

  • mpro-gram
  • ベストアンサー率74% (170/228)
回答No.1

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; 上記 = の右辺がリテラルです。

関連するQ&A