Japanese / English
参照データ型
Javaの参照データ型は基本データ型以外全てです。基本データ型と異なり、参照データ型は変数にメモリ番地を格納します。
基本データ型の変数の代入は値の代入ですが、参照データ型の代入はメモリ番地の代入になります。
以下、参照データ型の例です。

参照データ型のラッパークラス
// Sampleクラス
public class Sample{
    private int a = -1;
    private int b = -1;

    public void setA(int a){
        this.a = a;
    }

    public void setB(int b){
        this.b = b;
    }

    public int getA(){
        return a;
    }

    public int getB(){
        return b;
    }
}

// TestMainクラス
public class TestMain{
    public static void main(String args[]) {
        Sample sp1 = new Sample();
        Sample sp2 = new Sample();

        sp1.setA(2);
        sp1.setB(3);
        System.out.println(sp1.getA());
        System.out.println(sp1.getB());

        sp2.setA(6);
        sp2.setB(7);
        System.out.println(sp2.getA());
        System.out.println(sp2.getB());
        
        // 参照データ型の代入
        sp1 = sp2;

        sp1.setA(10);// sp1の値をセット
        sp1.setB(11);// sp1の値をセット
        System.out.println(sp2.getA());// sp2の値を標準出力
        System.out.println(sp2.getB());// sp2の値を標準出力

        sp2.setA(20);// sp2の値をセット
        sp2.setB(21);// sp2の値をセット
        System.out.println(sp1.getA());// sp1の値を標準出力
        System.out.println(sp1.getB());// sp1の値を標準出力
    }
}
実行結果
2
3
6
7
10
11
20
21
実行結果は上記の通りになります。
sp1 = sp2;としているため、ここでsp1とsp2が指すメモリ番地が同じになります。
そのため、sp1.setA()メソッドはsp2.setA()メソッドを実行しているのと同じになります。
よって上記のような出力結果となります。

Back to top

Information
Information
社長ブログ


運営サイト




広告



Google Search
PV
SEO対策 大阪  税理士 相談  税理士 守口市  税理士 大阪市  税理士 枚方市  自動車ガラス 神戸  シール印刷 神戸  ブリリアントアパートメント  株式会社CONFRAGE  英会話 個人レッスン 京都市右京区  京都市右京区西京区でマンツーマン英会話 
このページはCONFRAGEの著作物です。このページを複製・転載することを禁じます。CopyRight(C)2003-2016 CONFRAGE All rights reserved.