Google検索エンジン

トップページ » Javaキャスト入門 » キャストとは?


プログラミング言語における「キャスト」とは?

  • キャストとは?

    キャストとは、Javaなどのプログラミング言語において、従来のデータ型を別のデータ型に変換することを指します。 簡単に言い直せば「型変換」ということになります。

    データ型とは、コンピュータにおけるデータの扱いに関する形式のことです。 プログラミングなどにおいて変数そのものや、その中に代入されるオブジェクトや値が対象となります。


    なぜキャスト(型変換)をする必要があるのか?

    Javaプログラムで一致していないデータ型どうしを無理やり計算しようとするとコンパイルエラーになります。 また、コンパイルエラーにならなくても、実行中にClassCastException(クラスキャストエクセプション)がスローされたり、計算結果が不正な値になったりします。

    例えば、人が紙に書いて計算するときも、数値と文字を加算したり減算したりすることはできません。 コンピュータも同様に数値と文字を加算したり減算したりすることはできません。

    ただし、コンピュータ内部では、最終的に数値も文字も「数(2進数)」で判断されています。 「データ型」というものがないと、コンピュータは対象の値が「数値」なのか「文字」なのかを判断できません。 また、保持できるデータ領域も定められており、無限ではありません。 その為、値が数値なのか文字なのか、利用できるデータ領域はどこまでなのかを明示する必要があるわけです。


    暗黙的な型変換と、プログラマが意識的に行う型変換

    型変換には、暗黙的にJava実行環境が行う型変換と、プログラマが意識的に行う型変換(キャスト)があります。 暗黙的にJava実行環境が行う型変換については、プログラマーが意識する必要がありません。 ただし、Javaの基礎知識として暗黙的に行われる型変換についても覚えておいてください。

    文字列と数値を比較する為に型変換したり、他のプログラムやデータベースの値と型を合わせる際に、プログラマが意識的にキャストすることは多いと思います。 しかし、基本的に数値を扱う場合、数値型同士で変換が必要となるような型は宣言しないようにします。 なぜなら型がプログラムの途中で変わってしまうと、同じ数値が複数の型で存在してしまい、他の人が改訂するときに煩雑になり不便だからです。 また、型に対して領域外の数値を扱ってしまうと、正しく処理されません。 システムとしては致命的な欠陥の元となります。 エラーにならず、不正な処理結果がそのまま返ってきますので、領域には余裕をみた型を宣言します。


Javaキャスト入門
書籍の紹介
  • Java ポケットリファレンス
    Java ポケットリファレンス
    発売:2011/03/25
    定価:2,709円
    著者:高江 賢
    出版:技術評論社
    内容:ベーシックだけど忘れてしまいがちな情報をコンパクトなサイズに凝縮し、「逆引き形式で目的からすぐ探せる」「サンプルコードを見ながら具体的な実装のイメージがつかめる」特徴で現場に欠かせない1冊です。