LoginSignup
1
2

More than 5 years have passed since last update.

基本データ型と参照型 (Java)

Posted at

基本データ型

内容
char 16ビットUnicodeキャラクタデータ
boolean 真偽値 (true or false)
byte 8bit符号付き整数
short 8bit符号付き整数
int 32bit符号付き整数
long 64bit符号付き整数
float 32bit符号付き浮動小数点数
double 64bit符号付き浮動小数点数
public class Main1 {
    public static void main(String[] args) {
        // (1) プリミティブ型の宣言と初期化
        int a = 0;
        int b = 1;
        System.out.println("a: " + a);
        System.out.println("b: " + b);

        // (2) プリミティブ型の代入
        b = a;
        System.out.println("a: " + a);
        System.out.println("b: " + b);

        // (3) プリミティブ型の代入
        a = 2;
        System.out.println("a: " + a);
        System.out.println("b: " + b);
    }
}
public static void main(String[] args) {
    int a = 1;
    int b = a;
    b = 2;
    System.out.println(a);
    System.out.println(b);
}
1
2

参照型

public static void main(String[] args) {
    int[] a = {1, 2, 3};
    int[] b = a;
    b[0] = 5;
    System.out.println(a[0]);
    System.out.println(b[0]);
}
5
5

配列aもbも同じメモリの番地を表すので配列の要素は関係ない

クラスの場合

/**
 * 円を表すクラス
 */
public class Circle {
    /** 半径を表すフィールド */
    public int radius;
}
public class Main2 {
    public static void main(String[] args) {

        // (4) 参照型のインスタンス化とフィールドへの代入
        Circle c1 = new Circle();
        c1.radius = 0;
        Circle c2 = new Circle();
        c2.radius = 1;
        System.out.println("c1.radius: " + c1.radius);
        System.out.println("c2.radius: " + c2.radius);

        // (5) 参照型の代入
        c2 = c1;
        System.out.println("c1.radius: " + c1.radius);
        System.out.println("c2.radius: " + c2.radius);

        // (6) 参照型のフィールドに代入
        c1.radius = 2;
        System.out.println("c1.radius: " + c1.radius);
        System.out.println("c2.radius: " + c2.radius);
    }
}
c1.radius:0
c2.radius:1
c1.radius:0
c2.radius:0
c1.radius:2
c2.radius:2

参考

http://teachingprogramming.net/archives/647
https://nobuo-create.net/sanshougata/

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2