JavaA2Z

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

null

日本語
英語 null
ふりがな ぬる、なる
フリガナ ヌル、ナル

解説

「空」を意味するリテラル
クラス参照変数及び配列にのみ格納することができるリテラル
nullリテラル」「空リテラル」とも言う。
 
クラス配列といった「インスタンスを作成し、その参照を格納する変数」にのみ格納できるリテラル
「この変数はどのインスタンス参照も持っていません」ということを示す場合に使用する。
int等、参照を格納できない変数には格納できない。
 
nullが格納されている変数を使用してメソッド呼び出すNullPointerException例外投げられる

参考サイト

  • (参考サイトはありません)

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

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

// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        // Integerクラスを作ります。
        Integer integer = new Integer( 100 );
        System.out.println( integer );
        // 100

        // このInteger参照型変数にnullをセットします。
        integer = null;
        System.out.println( integer );
        // null

        // と言ってもこれは、
        // PrintStreamクラスのprintln( Object )メソッドが
        // 「nullの時はnullと出力する」というだけです。

        try
        {
            // 
            // nullは「どのインスタンスも指し示していない」
            // という意味になります。
            // なので、どんなメソッドフィールドもアクセス
            // できません。アクセス先が存在しないからです。
            // アクセスするとNullPointerException例外が投げられます。
            integer.toString();
        }
        catch( NullPointerException e )
        {
            e.printStackTrace();
            // java.lang.NullPointerException
            //     at Sample.main(Sample.java:28)

            // nullが入っているのに使おうとしたので
            // NullPointerExceptionが投げられました。
        }

        // int型の配列を作成します。
        int[] ints = new int[3];
        ints[0] = 100;
        System.out.println( ints[0] );
        // 100

        // 配列にもnullを格納できます。
        ints = null;
        System.out.println( ints );
        // null

        try
        {
            // 配列も、nullが入っているとアクセスできません。
            // 配列のインスタンスを指し示していないからです。
            ints[0] = 100;
        }
        catch( NullPointerException e )
        {
            e.printStackTrace();
            // java.lang.NullPointerException
            //     at Sample.main(Sample.java:55)

            // nullが入っているのに使おうとしたので
            // NullPointerExceptionが投げられました。
        }

        // nullは他の型の変数には格納できません。
        // int i = null;
        // コンパイルエラー:
        // 型の不一致: null から int には変換できません。
    }
}
// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        // Integerクラスを作ります。
        Integer integer = new Integer( 100 );
        System.out.println( integer );
        // 100

        // このInteger参照型変数にnullをセットします。
        integer = null;
        System.out.println( integer );
        // null

        // と言ってもこれは、
        // PrintStreamクラスのprintln( Object )メソッドが
        // 「nullの時はnullと出力する」というだけです。

        try
        {
            // 
            // nullは「どのインスタンスも指し示していない」
            // という意味になります。
            // なので、どんなメソッドフィールドもアクセス
            // できません。アクセス先が存在しないからです。
            // アクセスするとNullPointerException例外が投げられます。
            integer.toString();
        }
        catch( NullPointerException e )
        {
            e.printStackTrace();
            // java.lang.NullPointerException
            //     at Sample.main(Sample.java:28)

            // nullが入っているのに使おうとしたので
            // NullPointerExceptionが投げられました。
        }

        // int型の配列を作成します。
        int[] ints = new int[3];
        ints[0] = 100;
        System.out.println( ints[0] );
        // 100

        // 配列にもnullを格納できます。
        ints = null;
        System.out.println( ints );
        // null

        try
        {
            // 配列も、nullが入っているとアクセスできません。
            // 配列のインスタンスを指し示していないからです。
            ints[0] = 100;
        }
        catch( NullPointerException e )
        {
            e.printStackTrace();
            // java.lang.NullPointerException
            //     at Sample.main(Sample.java:55)

            // nullが入っているのに使おうとしたので
            // NullPointerExceptionが投げられました。
        }

        // nullは他の型の変数には格納できません。
        // int i = null;
        // コンパイルエラー:
        // 型の不一致: null から int には変換できません。
    }
}

この単語を含むページ

「みだし」に含まれているページ

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

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