【Javaプログラミング超入門 #05】変数

 

みのる
こんにちは。笑顔で感謝!✨ みのるコーチです。
今回も、ご覧いただき、ありがとうございます。

今回は

Java超入門 #5
Java の 変数

というテーマでお送りします。

はじめてプログラミングを学ぶかたは
特にこの変数という概念が大切になります。

一緒に やっていきましょうね。

彩香
今回も、よろしくお願いします。
剛留
やる気 満々です!
みのる
それでは 早速 行ってみましょう。

【Youtube版】

Youtubeでもお伝えしていますので
是非チェックしてくださいね。

 

【1】変数とは

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

この例では
age(年齢)という名前の箱を準備します。

例えば、整数の 20 というデータを
箱の中に入れたり

格納した 20 というデータを
取り出して使う事ができます。

プログラミングでは

このようにデータを変数に入れて
処理をします。

この、変数を使うことによって

与えられたデータで、動作が変わる
プログラムを実現する事ができるのです。

与えられたデータは…
① 人が入力したもの
② 他のシステムから渡されるもの
③ データベース(データの倉庫)から渡されるもの

など、様々なパターンがあります。

【2】変数の使い方3ステップ

①宣言

まず最初に「箱」を準備しますが、この事を

「変数を宣言する」

と言います。

そして、Javaでは
2つの要素を書く事になります。

1つが「データ型」
もう一つが「変数名」です。

データ型 というのは、この変数の
「 種類 」 や 「 大きさ 」 という意味です。

データ型については、#06 で解説しますが
この例の int は整数を表すデータ型です。

ここでは、まずは

変数を宣言する事が必要

ということ、押さえておいてくださいね。

②代入

変数に データを入れることを

「 変数に値を代入する 」

と言います。

代入という言葉も 多く出てきますので
覚えておきましょうね。

そして、Javaでの書き方です。

このように
「 = 」 (イコール)の記号を使います。

「 = 」 という記号を見ると
左辺と右辺が 「 等しい 」 という意味を
想像するかたも多いと思いますが

この場合には
「等しい」と言う意味はありません。

では、どういう意味かというと…

このイコールは

代入演算子

というもので、「 右辺 」の値を「 左辺 」に
『 代入する 』という意味です。

「右から左」と
イメージを掴んでおきましょう。

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

彩香
「 右から左 」 ですね!
ノートに絵を書いて、イメージで 覚えておきます。
剛留
「 右から左 」 … 「 右から左 」っと…。
バッチリです!
みのる
OKですよー。

③参照

変数に データが入っている状態で

そのデータを取り出して 使うことを

「 参照する 」

といいます。

ここでは、どんな場面があるか
3つのパターンを 見ていきましょう。

❶ Java機能を呼び出す時

この例は、System.out.println の中で
参照する場合です。

System.out.println(”年齢:” + age + ”歳”);

文字列の “年齢:” + age + “歳” ですが
この age と書いてある部分は

変数の参照

で、変数 age に格納されているデータ 20 を
使うという意味です。

すると、この age が 20 に置き換わります。

そして、次に この + の記号ですが…

これは 連結演算子 というもので

+ の右辺または左辺に、文字列がある場合に
2つを連結します。

そして、この + は
左から順に連結していきます。

ですので、まず “年齢:” と 20 を連結して
“年齢:20” + “歳” となって

その次に、”年齢:20歳” という
文字列が出来上がります。

結果的に
画面には このように表示されます。

年齢:20歳

ポイントは、age と書くだけで
変数 age に入っている 20 を取り出して
置き換えてくれるという事です。

ここも
このイメージで 掴んでおきましょうね。

❷ 代入演算子の右辺(他の変数に代入する)

次は、変数の中のデータを
他の変数に代入する場合です。

例えば、age の中のデータを
thisAge という別の変数に
代入する場合を考えましょう。

代入ですので
代入演算子「=」を使います。

左辺に変数名を書いた場合には

「箱」に値を代入するという意味で
「箱」を主体に考えますが

右辺に変数名を書いた場合は
「 参照する 」 こととなります。

つまり、中のデータを
取り出して使用するのです。

「箱」ではなく、中のデータを表すこと
覚えておきましょうね。

❸ 演算

3つ目は、変数の中のデータを
演算に使用する場合です。

例えば、age 中のデータに 1 を足して
nextAge という変数に代入する場合を
考えてみましょう。

Javaの場合には、こう書きます。

nextAge = age + 1 ;

ここでも、変数 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 修飾子

をつけて表します。

そして、定数は 初期化した後には
値を変更することができません。

再代入しようとすると
コンパイルエラーが出ます。

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

【5】識別子

変数や定数、それから前回 学んだ クラスは
それぞれ名前をつけて使うことになります。

これらの名前として使う文字列の並びのことを
識別子(identifier)といいます。

①Java識別子のルール

識別子をつけるルールを知っておきましょう。

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】変数

【1】変数とは
・ 変数とは、データを格納するための「箱」。
・ 変数を使えば、与えられたデータで動作が
 変わるプログラムを実現できる。
【2】 変数の使い方3ステップ
① 宣言
② 代入
③ 参照
【3】 変数を使う時のポイント
① 宣言+代入は同時に行える。(初期化)
② 初期化や代入をしてから参照する。
③ 上書きができる。(元の値が消える)
【4】 定数
・ 値が変わらない場合「定数」を使う。
・ 変数宣言の前に final 修飾子をつける。
・ 定数は 初期化した後に値を変更できない。
【5】 識別子
・ 変数や定数など
  名前として使う文字列を識別子という。
・ クラス名はアッパーキャメルケース。
・ 変数名はローワーキャメルケース。
・ 定数名は大文字のスネークケース。