JavaA2Z

KAB-studio > プログラミング > JavaA2Z > =演算子とは

=演算子

日本語 代入演算子
英語 assignment operator、equal operator
ふりがな いこーるえんざんし
フリガナ イコールエンザンシ

解説

値を変数に格納する演算子
 
二項演算子のひとつ。
代入演算子」とも言う。
左オペランド右オペランドの値に書き換える「副作用」を持つ。
変数 = 変数」の形で、右オペランドの値を左オペランド変数に格納する。これを「代入」という。
左オペランド変数は書き換えられる。右オペランド変数には変化しない。「右から左」なので注意。つまり普通の計算式の「 1 + 1 = 2 」とは逆ということである。
戻り値として格納した値を返すため、ひとつの値を複数の変数にまとめて格納することもできる。
 
基本的に異なる代入できないが、プリミティブ型同士であれば自動的型変換されて代入できる場合もある。これを「代入変換」と言う。
またクラス同士であれば、サブクラスからスーパークラスへも代入できる。これを「ポリモーフィズム」と言う。その際、代入変換とは異なり、代入する値に変化はない。
 
値の代入は頻繁にわれるため、下記演算子のように「ある演算代入機能を加えた演算子」が用意されている。
以下の、「=演算子」の前に他の演算子を組み合わせた演算子を「複合代入演算子」と言う。
 
+=演算子
-=演算子
*=演算子
/=演算子
%=演算子
&=演算子
|=演算子
^=演算子
<<=演算子
>>=演算子
>>>=演算子
 
以上の演算子と比較するため、「=演算子」のことを「単純代入演算子」とも言う。
 
=演算子は代入うものである。
「一致しているかどうか」を調べる演算子は「==演算子」である。

参考サイト

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

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

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

// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        int i;
        // int型変数iに、「=演算子」で、整数リテラル「100」
        // を値を代入します。
        i = 100;
        System.out.println( i );
        // 100

        // 代入は「右から左」に行われます。
        // そのため、左オペランドにリテラルを指定すると
        // コンパイルエラーになります。
        // 100 = i;
        // コンパイルエラー:
        // The left-hand side of an assignment must be a variable

        // 変数宣言時に初期化する際にも使います。
        // ただし、これは厳密には「代入」と異なります。
        int i2 = 200;
        System.out.println( i2 );
        // 200

        // =演算子の「戻り値」の型は、代入した値です。
        i2 = i = 300;
        System.out.println( i2 );
        // 300

        // 型が違うと代入できません。
        // i = new Integer( 100 );
        // コンパイルエラー:
        // 型の不一致: Integer から int には変換できません。

        // プリミティブ型であれば、型によっては代入変換されます。
        double d = i;
        System.out.println( d );
        // 300.0
    }
}
// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        int i;
        // int型変数iに、「=演算子」で、整数リテラル「100」
        // を値を代入します。
        i = 100;
        System.out.println( i );
        // 100

        // 代入は「右から左」に行われます。
        // そのため、左オペランドにリテラルを指定すると
        // コンパイルエラーになります。
        // 100 = i;
        // コンパイルエラー:
        // The left-hand side of an assignment must be a variable

        // 変数宣言時に初期化する際にも使います。
        // ただし、これは厳密には「代入」と異なります。
        int i2 = 200;
        System.out.println( i2 );
        // 200

        // =演算子の「戻り値」の型は、代入した値です。
        i2 = i = 300;
        System.out.println( i2 );
        // 300

        // 型が違うと代入できません。
        // i = new Integer( 100 );
        // コンパイルエラー:
        // 型の不一致: Integer から int には変換できません。

        // プリミティブ型であれば、型によっては代入変換されます。
        double d = i;
        System.out.println( d );
        // 300.0
    }
}

この単語を含むページ

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