## page was renamed from プリミティブとオブジェクト == 基本データ型 == Javaのデータはプリミティブとオブジェクトの2種類に大きく分けられます。 === プリミティブ === . 基本データ型のことをプリミティブといい次の8つがあります。 . バイト数も決まっています。(Cでは処理系により異なっても良い) ||byte||1バイト整数|| ||short||2バイト整数|| ||int||4バイト整数|| ||long||8バイト整数|| ||float||4バイト浮動小数点|| ||double||8バイト浮動小数点|| ||char||Unicode文字(16ビット)|| ||boolean||真偽値|| === オブジェクト === . プリミティブ以外のデータはすべてオブジェクトと考えてよい。 . '''文字列''', '''配列''', '''クラス''' があります。 ---- === 変数 === 変数を使うには、その型と名前を宣言しなければならない。 {{attachment:hensu1.png}} 型は基本型または配列またはクラスである。 === 変数の値 === 変数は値を保持することができる。 ただし、プリミティブとオブジェクトで保持のされ方が異なる。 プリミティブの値は、変数の対応する場所に'''直接保持'''されます。 変数の場所を四角で表すと図のようになる。 . {{attachment:hensu3.png}} 例 {{{#!java double suu; suu = 103.75; }}} 次の図は変数suuが値103.75を保持していることを表している。 . {{attachment:hensu4.png}} オブジェクトの場合データは別の場所に作られ、変数はオブジェクトを参照する。 実際の値はオブジェクト内にある。 後日解説。 . {{attachment:hensu5.png}} ---- === Cとの違い === * 基本データ型のバイト数は処理系によらず決まっています。 * 数値の型変換 . 計算式の中で型が混在した場合、 . byte → short → int → long → float → double . の方向にのみ変換が行われます。 * 逆方向の変換は指示しない限り行われない。 . 型変換を強制するにはキャスト演算子を用いて記述します。 * charは16ビットです。 * charとintの変換は行われません。 * charの配列は文字列とは異なります。 * boolean以外を論理演算や条件に用いることはできません。 . Cで可能だった次のような書き方も間違いです。 {{{ int k; ... while ( k ) { ... } }}}