JavaA2Z

KAB-studio > プログラミング > JavaA2Z > 型とは

日本語
英語 type
ふりがな かた
フリガナ カタ

解説

変数の「原型」。
データを格納する「変数」は、「型 変数;」という形式で、型を使って「変数」を「宣言」することで初めて使うことができる。こうして作られた変数は「変数 =;」という形で値を格納することができる。
型そのものにデータを格納することはできない。たとえば「型 =;」のように、型に値を入れることはできない。型はあくまで変数の原型であり、変数そのものとはならないからである。
「バケツの金型」のようなものをイメージするといい。金型そのものに水は入れられない。金型を元にバケツを作ることで、そのバケツに水を入れることができるようになる。この「バケツ」が「変数」、「水」が「格納する値」、「金型」が「型」である。
 
型には「プリミティブ型」や「参照型」が該当する。
プリミティブ型int型やdouble型が該当し、整数浮動小数点を格納することができる。
参照型は「参照値」と呼ばれる値を格納することができる。参照値は、クラス配列といったインスタンスを指し示す番号である。参照変数は、格納している参照値を通して、その参照値が指し示すインスタンスを操作することができる。
ただし、参照型の場合、参照変数の型と、その指し示すインスタンスの型は、必ずしも一致しない。これはポリモーフィズムわれるためである。
 
変数リテラル戻り値は必ず「型」を持っている。
変数は、作られた際の「型」が、その変数の「型」となる。
リテラルは、リテラルによって型が決まる。整数リテラルであればint型、文字列リテラルであればStringクラス参照型である。
戻り値は、メソッドの「戻り値の型」がその値の型となる。
 
変数に格納されている値やリテラル戻り値を、他の変数にコピーする場合、型が一致している必要がある。
型が異なる場合、その「格納先変数の型」へと変換してからコピーする必要がある。
この、変数であれば変数の中の値、リテラルであればその値を、戻り値であればその値を、自らの型と違う型へと変換することを「型変換」と言う。
型が異なる場合、異なる型へと「型変換」する必要がある。その際、暗黙的キャストわれる場合は自動的型変換われる。それ以外は明示的キャストする必要がある。

参考サイト


(KAB-studioからのおしらせです)

サンプルプログラム(とか)サンプルを別ウィンドウで表示サンプルをクリップボードへコピー(WindowsでIEの場合のみ)

// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        // プリミティブ型のひとつ、int型の変数を宣言します。
        int i;
        // そのint型変数に整数リテラルを代入します。
        i = 100;
        System.out.println( i );
        // 100

        // プリミティブ型 int そのものには値を入れられません。
        // int = 100;
        // トークン "=" に構文エラーがあります。
        // 正しくは "Identifier" です。

        // 先ほど宣言したiの型は「int型」です。
        // このiの中に格納されている値を渡せるのは、
        // 同じint型変数になります。
        int i2;
        i2 = i;
        System.out.println( i2 );
        // 100

        // 型が異なる変数にコピーする場合、コピー元の値を
        // コピー先の型へ変換してから、コピーされます。
        long l;
        l = i;
        // int型からlong型へ、iに格納されている値が
        // 暗黙的にキャストされ、long型へ変換されてから、
        // 変数lに格納されました。

        // 暗黙的にキャストされない場合には、明示的にキャスト
        // する必要があります。
        char ch;
        ch = (char)i;
        // int型からchar型へ、iに格納されている値が
        // 明示的にキャストされ、char型へ変換されてから、
        // 変数chに格納されました。
    }
}
// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        // プリミティブ型のひとつ、int型の変数を宣言します。
        int i;
        // そのint型変数に整数リテラルを代入します。
        i = 100;
        System.out.println( i );
        // 100

        // プリミティブ型 int そのものには値を入れられません。
        // int = 100;
        // トークン "=" に構文エラーがあります。
        // 正しくは "Identifier" です。

        // 先ほど宣言したiの型は「int型」です。
        // このiの中に格納されている値を渡せるのは、
        // 同じint型変数になります。
        int i2;
        i2 = i;
        System.out.println( i2 );
        // 100

        // 型が異なる変数にコピーする場合、コピー元の値を
        // コピー先の型へ変換してから、コピーされます。
        long l;
        l = i;
        // int型からlong型へ、iに格納されている値が
        // 暗黙的にキャストされ、long型へ変換されてから、
        // 変数lに格納されました。

        // 暗黙的にキャストされない場合には、明示的にキャスト
        // する必要があります。
        char ch;
        ch = (char)i;
        // int型からchar型へ、iに格納されている値が
        // 明示的にキャストされ、char型へ変換されてから、
        // 変数chに格納されました。
    }
}

この単語を含むページ

「解説」に含まれているページ

「サンプルプログラムとか」に含まれているページ

はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
Yahoo!ブックマーク 詳細を表示 users
del.icio.us 登録する RSSに登録
サンプルを別ウィンドウで表示
サンプルをクリップボードへコピー(WindowsでIEの場合のみ)
update:2005/07/21
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。