LoginSignup
3
2

More than 3 years have passed since last update.

Javaで学習してきたこと(その2)変数とは

Last updated at Posted at 2020-11-06

Javaの振り返り

前回に引き続きJavaを勉強してきた内容を大まかに振り返りたいと思います。

※良ければ以前の記事もご覧ください
Javaで学習してきたこと(その1)Java開発の流れと全体像

変数とは

Javaは一つ一つ箱を作りながらシステムを構築していくイメージです。

その箱の中の最小単位となるのが変数です。
変数はデータを入れておくための箱を用意して、
その中にデータを入れたり取り出したりする
ことができます。
スクリーンショット 2020-11-06 121659.png

例として

public class Main {
    public static void main(String[] args) {
        int age;
        age = 20;
        System.out.println(age);
    }
}

※age(年齢)
実行結果
スクリーンショット 2020-11-05 132322.png
上記のソースコードが何をしているのかというと
1.変数「age」を作成
2.「age」の中に整数の「20」を入れる(代入)
3.「age」の中身をコンソールに表示
イメージとしてはこんな感じです!
image.png
1から順に説明していきたいと思います。

変数宣言

まずはデータを入れるための箱の作成(変数宣言)をします。
箱といっても何でも入るわけではありません。
Javaでは何を入れるための箱かを明確に指定しなければ
いけません。

先ほどの「age(年齢)」は「int型」という整数を入れるための箱となっています。
整数以外(文字列や小数点数)は入れることができません。
スクリーンショット 2020-11-06 225242.png
Javaでは予め中に入れるデータの型(※以下「データ型」)を決めておく必要があります。
これを「変数宣言」と言います。

int age;

上記は「int型のageという箱を作ります」という変数宣言です。
スクリーンショット 2020-11-06 125221.png

データの代入

int age;
age = 20;

作成した変数「age」の中に整数の「20」を代入します。
スクリーンショット 2020-11-06 142022.png
先ほど述べた通りこのint型変数「age」には文字や小数点数などは入れることができません。
入れようとするとコンパイル(コンピューターが読める文に変換)できず、修正を求められます。

※代入は変数宣言と一緒に書くことも可能です。

int age = 20;

データの参照

データの代入後

System.out.println(age);

System.out.println();とは末尾の()内をコンソール(コンピューターと会話する場所)に表示させるための処理です。ここで「age」を指定しているため先ほど代入した「20」が表示されます。
スクリーンショット 2020-11-06 145439.png
ではここで「20」の入った変数「age」へ更に「30」を代入したらどうなるか?

public class Main {
    public static void main(String[] args) {
        int age;
        age = 20;
        age = 30;
        System.out.println(age);
    }
}

実行結果
スクリーンショット 2020-11-06 143155.png
「変」わる「数」という名前の通り、一番新しく代入されたものに上書されていきます。
スクリーンショット 2020-11-06 160755.png

データ型

データ型はint型だけではありません。
先ほど述べた「文字列」や「小数点数」等を入れるためのデータ型もあります。
以下にまとめたいと思います。

分類 型名 格納するデータ
整数 long 大きな整数
int 普通の整数
short 小さな整数
byte さらに小さな整数
小数点数 double 倍精度浮動小数点数
float 単精度浮動小数点数、少しあいまいでもよい小数点付きの数
真偽値 boolean trueかfalse
文字 char 1つの文字
文字列 String 文字の並び

倍精度浮動小数点数

勉強初めは
整数を使う場合int
小数点数を使う場合double
二者択一を使う場合boolean
文字列を使う場合String
と覚えておけば大丈夫です!

プリミティブ型と参照型

データ型には更に大きなくくりとしてプリミティブ型と参照型がある。
プリミティブ型は「箱」に値を直接入れる。
整数(long,int,short,byte)小数点数(double,float)真偽値(boolean)文字(char)
スクリーンショット 2020-11-06 142022.png
それに対して参照型は具体的なデータではなくメモリ上の番地を代入します。
String型や後日まとめたいと思いますが「配列」「List」等もこの参照型に含まれます。
スクリーンショット 2020-11-06 234019.png
直接「文字列」が入るのではなく、、、
スクリーンショット 2020-11-06 235437.png
具体的にはもうワンクッション入るのですが図のように、名前の「文字」の並びの先頭の番地が代入されます。
※わかりずらかったらごめんなさい。

なぜ変数を使うのか?

変数を使用することで以下の2点のメリットがあげられます。
・汎用性が高くなる。
・変更、修正がしやすくなる。

リンゴの売り上げで例えると

public class Main {
    public static void main(String[] args) {
        //リンゴの値段を100円とする
        int apple = 100;

        //各地域の売り上げ
        int tokyo = 100 * apple;
        int kanagawa = 80 * apple;
        int tiba = 70 * apple;

        //売り上げの合計
        int totalSales = tokyo + kanagawa + tiba; 

        //総売り上げの表示
        System.out.println(totalSales);
    }
}

実行結果
スクリーンショット 2020-11-08 232255.png
総売り上げが表示されます。
ここでもしリンゴの値段が間違っていた場合、もしくは値段を上げた時の見積もりを出したい時など
シチュエーションは様々ですがリンゴの値段を変えたい時に修正箇所が一ヵ所ですみます。

public class Main {
    public static void main(String[] args) {
        //リンゴの値段を100円から120円に修正する
        int apple = 120;

        //各地域の売り上げ
        int tokyo = 100 * apple;
        int kanagawa = 80 * apple;
        int tiba = 70 * apple;

        //売り上げの合計
        int totalSales = tokyo + kanagawa + tiba; 

        //総売り上げの表示
        System.out.println(totalSales);
    }
}

実行結果
スクリーンショット 2020-11-08 232335.png

例えとしてわかりにくいかもしれませんが勉強を進めていくうちに理解できてくると思います。

参考文献

次回は「命令実行の文」について書いていきたいと思います!

3
2
3

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
3
2