
今回は
というテーマでお送りします。
はじめてプログラミングを学ぶかたは
特にこの変数という概念が大切になります。
一緒に やっていきましょうね。



目次
【Youtube版】
Youtubeでもお伝えしていますので
是非チェックしてくださいね。
【1】変数とは

変数とは、データを格納するために
コンピュータ内部に準備する
「箱」のようなものです。

この例では
age(年齢)という名前の箱を準備します。
例えば、整数の 20 というデータを
箱の中に入れたり
格納した 20 というデータを
取り出して使う事ができます。
プログラミングでは
このようにデータを変数に入れて
処理をします。
この、変数を使うことによって
与えられたデータで、動作が変わる
プログラムを実現する事ができるのです。

② 他のシステムから渡されるもの
③ データベース(データの倉庫)から渡されるもの
など、様々なパターンがあります。
【2】変数の使い方3ステップ

①宣言
まず最初に「箱」を準備しますが、この事を
と言います。
そして、Javaでは
2つの要素を書く事になります。

1つが「データ型」
もう一つが「変数名」です。
データ型 というのは、この変数の
「 種類 」 や 「 大きさ 」 という意味です。
データ型については、#06 で解説しますが
この例の int は整数を表すデータ型です。
ここでは、まずは
ということ、押さえておいてくださいね。
②代入
変数に データを入れることを
と言います。
代入という言葉も 多く出てきますので
覚えておきましょうね。
そして、Javaでの書き方です。
このように
「 = 」 (イコール)の記号を使います。

「 = 」 という記号を見ると
左辺と右辺が 「 等しい 」 という意味を
想像するかたも多いと思いますが
この場合には
「等しい」と言う意味はありません。
では、どういう意味かというと…
このイコールは
というもので、「 右辺 」の値を「 左辺 」に
『 代入する 』という意味です。
「右から左」と
イメージを掴んでおきましょう。

これは、これから先も使っていく
大切な考え方ですので、覚えておきましょう。

ノートに絵を書いて、イメージで 覚えておきます。

バッチリです!

③参照
変数に データが入っている状態で
そのデータを取り出して 使うことを
といいます。
ここでは、どんな場面があるか
3つのパターンを 見ていきましょう。
❶ Java機能を呼び出す時
この例は、System.out.println の中で
参照する場合です。
文字列の “年齢:” + age + “歳” ですが
この age と書いてある部分は
で、変数 age に格納されているデータ 20 を
使うという意味です。
すると、この age が 20 に置き換わります。
そして、次に この + の記号ですが…
これは 連結演算子 というもので
+ の右辺または左辺に、文字列がある場合に
2つを連結します。
そして、この + は
左から順に連結していきます。
ですので、まず “年齢:” と 20 を連結して
“年齢:20” + “歳” となって
その次に、”年齢:20歳” という
文字列が出来上がります。
結果的に
画面には このように表示されます。
ポイントは、age と書くだけで
変数 age に入っている 20 を取り出して
置き換えてくれるという事です。

ここも
このイメージで 掴んでおきましょうね。
❷ 代入演算子の右辺(他の変数に代入する)
次は、変数の中のデータを
他の変数に代入する場合です。
例えば、age の中のデータを
thisAge という別の変数に
代入する場合を考えましょう。
代入ですので
代入演算子「=」を使います。
左辺に変数名を書いた場合には
「箱」に値を代入するという意味で
「箱」を主体に考えますが
右辺に変数名を書いた場合は
「 参照する 」 こととなります。

つまり、中のデータを
取り出して使用するのです。
「箱」ではなく、中のデータを表すこと
覚えておきましょうね。
❸ 演算
3つ目は、変数の中のデータを
演算に使用する場合です。
例えば、age 中のデータに 1 を足して
nextAge という変数に代入する場合を
考えてみましょう。
Javaの場合には、こう書きます。
ここでも、変数 age の中のデータを
使うという意味ですので
この age が 20 に置き換わります。
そして、+ の記号です。
これは、左辺も右辺も数値です。
この場合には
どちらかが文字列の場合には
連結演算子でしたが…
両方とも数値の場合には 算術演算子の
加算(足し算)の意味になります。
ですので、ここは 21 になります。
そして、代入演算子によって、この 21 が
nextAge に 代入されることになります。
ここでも、変数名 age と書くだけで
中のデータを取り出して使っている事を
確認しておいてくださいね。


代入演算子の「右辺」で使う場合に
変数に格納されてあるデータを
取り出して「左辺」の変数に代入しますが…
この時、右辺の変数は
『 空 』 になってしまうのですか?

例えば、この例で

age の中の 20 を取り出して
thisAge に代入すると…
取り出して使ってしまうので…
右辺の age は空に なってしまいますか?
…という ご質問ですね。

この場合、コピーして使うため
元の age の中はそのまま 20 が残っています。
つまり、空になりません。

これは、「Javaの機能を使う時」や
「演算に使用する時」にも同様の事が言えます。
変数を参照した後も
その変数には 元の値が残っています。
ここも1つのポイントになりますね。
【3】変数を使う時のポイント

①宣言+代入は同時に行える。(初期化)
これは、前のコーナーでお話した
は、同時に行えるという事です。
宣言して代入する という事ができます。
これを「初期化する」といいます。
Javaの書き方では、このようになります。

宣言をして、初期化します。
このように、1行で書くことができます。
②初期化や代入をしてから参照する。
変数は、初期化 や 代入 を行って
データが格納されている状態で 参照します。
データが 格納されていない状態が
あるとします。

この場合 代入の文がコメントに
なっていますね。
この状態でで参照しようとすると…
コンパイル時にエラーとなります。

③上書きができる。(元の値が消える)
変数は上書きができます。
例えば この場合

最初に highScore に 63 を代入します。
そして、何か処理をした後 highScore に
70 を代入する事が可能です。
この場合には、元の値 63 は
消える事も 知っておきましょう。


【4】定数

変数は 上書きできる事を学びましたが
値が変わらない場合には
を使います。
Javaでは、変数宣言の前に
値が変わらない という意味の
をつけて表します。
そして、定数は 初期化した後には
値を変更することができません。
再代入しようとすると
コンパイルエラーが出ます。

という事で、値が変わらない場合には
final 修飾子をつけて 定数として扱いましょう。
【5】識別子

変数や定数、それから前回 学んだ クラスは
それぞれ名前をつけて使うことになります。
これらの名前として使う文字列の並びのことを
識別子(identifier)といいます。
①Java識別子のルール

識別子をつけるルールを知っておきましょう。
❷ 1文字目は数字は使えない。
❸ 大文字と小文字は区別される。
❹ 予約語(keywords)は使えない。
予約語とは、予め意味をもった文字列として
決められている語のことです。
今まで学んだ中でも
class や int 、 final などありますね。
メインメソッドで出てきた
public や static や void も 予約語です。
全部で 50個 ほどありますが
これらは 新たに識別子として
命名することができません。
ただ、最初から全部覚えなければと
思わなくて大丈夫です。
学習していく上で出てきますので
今のところは、そういうものがあるんだ…
という感じて捉えておいてください。
②Java識別子の慣習

識別子の Javaの慣習を見ていきましょう。
Javaで定められている事ではありませんが
Javaでプログラムを書く人の
多くが実践している事です。
➊ クラス・インターフェース
まず、クラス名やインターフェース名です。
まだインターフェースは学んでいませんが
出てきた時にはクラス名ど同様と思って
名前をつけましょう。
ルールとしては、先頭を大文字にします。
それ以外は小文字。
そして、2つ以上の単語を連結する場合に
単語の先頭を大文字にします。
例えば、StudyPlan。この場合には
最初の S が大文字でPlan の Pが大文字です。
このような方式を
「パスカルケース」
と言います。
何となく 大文字が「ラクダ」の
コブのように見えますよね。
そして先頭が大文字なので
アッパーキャメルケースと言います。
また「パスカル」という言語で
使われていた事もあり
パスカルケース と呼ばれることもあります。
❷ 変数・メソッド
次です、今回 学んでいる変数や
後に学ぶメソッドについてです。
先頭は小文字です。他も小文字です。
そして、2つ以上の単語を 連結する
場合には単語の先頭を大文字にします。
例えば、studyPlan。この場合には
最初の s は小文字で Plan の Pが大文字です。
このような方式を
と言います。
大文字が「ラクダ」のコブで
先頭が小文字なので
ローワーキャメルケースです。
❸ 定数
定数名です。こちらは、全て大文字です。
そして、2つ以上の単語を連結する場合には
‘_'(アンダーバー)を使います。
例えば、STUDY PLAN のように、全て大文字で
単語の連結にアンダーバーを使います。
方式は、大文字のスネークケース
または アッパーケースです。
何となく アンダーバーが「蛇」の
ようですものね。
● 小文字のスネークケース
また、小文字のスネークケースというのも
ありますが Javaの慣習では
使う事があまりありません。
小文字のスネークケースは
標準で使われている言語もあったり
データベース用の言語では
主に使われていたりします。


動物になっていることとっても面白いですね。
キャメルケース、スネークケース
どちらも覚えました。

「クラス名」なのか「変数名」なのか
「定数名」なのか名前を見ただけで
分かりますもんね。
この慣習に従って、識別子を書いていきます。
【まとめ】

【Java超入門 #05】変数
・ 変数を使えば、与えられたデータで動作が
変わるプログラムを実現できる。
② 代入
③ 参照
② 初期化や代入をしてから参照する。
③ 上書きができる。(元の値が消える)
・ 変数宣言の前に final 修飾子をつける。
・ 定数は 初期化した後に値を変更できない。
名前として使う文字列を識別子という。
・ クラス名はアッパーキャメルケース。
・ 変数名はローワーキャメルケース。
・ 定数名は大文字のスネークケース。
今回も、ご覧いただき、ありがとうございます。