はじめに
いきなりデータ型と聞くとなんだか難しそうに聞こえますよね?
でもデータ型とは単なる箱(型) の事です。 プログラムでは、値は箱に入れて使います。
例えば、調味料入れ。 自宅にありませんか?
塩には塩の調味料入れ。胡椒には胡椒の調味料入れがありますよね。
そのような感じで、プログラムでも値を入れるために箱を準備します。
この章では、javaにはどんな箱(型) があって、そこにはどんな値が入れれるのかを詳しく学んでいきましょう!
step1: データ型と値の関係性
javaで扱われるデータ型の一覧表です。
表を見てわかることがいくつかありますね。
javaでは、箱=データ型に対して入れられる値が決まっています。
データ型はbyte int boolean のことで、それぞれ扱える値が決められているんですね。
この表を見て、徐々に関係性を覚えて行きましょう!
型と値の関係性を覚えるコツ
型は、形容詞的なものに置き換えるとイメージが湧きやすいかもしれません!
例えば、「味覚」について考えてみると、、、
「甘味、酸味、 塩味、苦味、 旨味」の5つが存在するのは有名なお話ですよね。
この基本の5つの味が型であるとするならば以下のように定義できます!
【サンプル: 型】
(以下は理解の補助のために用意したもので、 実際に動くコードではありませんが、是非ご参考にしてください! )
Step2: データ型の使い方
Step1では、データ型(箱)と値の説明でしたが、今度は使い方を学びましょう!
変数
データ型と値を扱うためには、変数というものについて触れる必要があるので順を追ってみていきましょう!
以下、プログラミング言語における 「変数」の特徴です!
- 変数は、情報の出し入れを行える入れ物(例: 箱のようなもの)
- 変数の中身は、書き換え (or 上書き) が可能
- 変数は、情報を一定期間記憶しておける
- 変数には、名前を付与する
上記を踏まえた上で、 データ型や値と関連性を持たせ噛み砕いていくと、、、
「何かの数値や、文字などの値にキーワードを付与して、一時的に保存しておける」考え方と紐付けることができます。
まだ難しそうですので、もう少し切り口を変えてみます! 例えば、、、
今までの人生で 「感動したこと」ってあると思うのですが、それってきっと「思い出として記憶に残っている」のではないでしょうか?
そしてそれを思い出すときって「小学生の頃、夏休みに家族と行った旅行」のように、
「その内容と一緒に思い出すためのキーワード」が付随しているのではないでしょうか? そして上記イメージを変換していくと、、、
- データ型(カテゴリ/ジャンル)
思い出 - 変数名(キーワード/タイトル)
小学生の頃、夏休みに家族と行った旅行 - 値 (データ型に対応する内容)
思い出(記憶)の内容
のような組み合わせで考えることができます。
あ、なんとなく掴めた!と思っていただければ幸いです!
イメージは大切ですので、もし上記の例でしっくりこないなーという方は、変数における特徴から自身でイメージを膨らませてみるといいでしょう!
例題
【実行結果】
例題にある、int seisu=1234; を分解して解説していきます。
- 変数の宣言
これから何のデータ型を作るのかの宣言になります。
今回はint型で宣言しているため、「int型」の「seisu」という変数を扱うよ! 初期値は「1234」だよ!ということになります。 - 変数名
seisu は変数の名前で、 変数には必ず名前をつける必要があります。 どういう名前をつけるかは自由です。
自由ですが、 何を入れてるものなのか分かりやすい名前をつけましょう!
【サンプル: 命名規則その1】
悪い例は、明らかに入れ物と値が噛み合っていませんよね?
変数の宣言では、こういった矛盾や意味の齟齬が発生しないような命名が大切になります。
【サンプル: 命名規則その2】
こちらは何が悪いかというと、変数名で使用されている英単語がすべて小文字であるため、変数名の意味が一瞬分かりづらくなっている点です。
基本は、単語ひとつひとつの意味がわかりやすいように、2つ目以降の単語は、頭文字を大文字にして記述していきます。
※ラクダのコブのようなの見た目から、キャメルケースと呼ばれる書き方になります。
- 初期化
変数を宣言した後でその変数に値を格納したい場合 (最初から値を格納したい場合)は、 「定義した変数 = 格納したい値」という書き方で実現できます。 - ;(セミコロン)
これは句点(。)の意味があります。忘れずに、最後は;で閉めましょう。 セミコロンが無い場合は、コンパイルエラーが発生します。
(※コンパイルエラーは、後述のStep4: エラー (コンパイルエラー)で解説します。
データ型 + 変数名 + = + 値 という順番で成り立ってることが分かります。
基本的な構造なので、しっかり抑えておきましょう。
System.out.println()について
例題にてSystem.out.println(seisu); という記述があります。
printlnメソッドなどと呼んだりしますが、 何を表示させるか指示できるものです。 英語の意味そのままですね。
( )の中に表示してもらいたいものをいれます。 注目していただきたい部分は() の中に seisu という記述があることです。直訳すると、「seisu を表示する」 となります。 ここで言う seisu とは何か…
int seisu = 1234; → seisu = 1234 → 1234
だから、【実行結果】の時に、int型 = 整数=1234 (seisu) となるんですね。
System.out.println() については、カリキュラムを進める内に嫌でも覚えてくるので、心配無用です。
補足
- System.out.print()
類似機能として、System.out.print() が存在します。 System.out.println() との違いは、コンソールへの出力時に、出力内容の末尾に改行文字が入るか入らないかという点です!
(メソッド名の 1n (エルエヌ) が line という単語を指し示していて、使用者はそこで判別して使い分けることができます。 - 改行文字
Windows: \n (円マーク + n)
Mac: \n(バックスラッシュ + n)
文字列中に上記改行文字を入れるなどして、System.out.print() などで出力すると改行されてるか確認できます。
【サンプル】
System.out.print("ABC\nDEF")
【出力結果】
Step3: 文字列・Stringクラス【String】
javaには複数の文字を代入できる文字列クラスの String というものがあります。
(※Stringに関しては、他のデータ型と違い、型ではなくクラスになります。 )
データ型の char でも文字を扱えると学びましたが、 一文字しか扱えません。なので複数の文字を扱える String の方が圧倒的に使いやすいです。
文字(文字列)を扱う時は、 String クラスを使ってきましょう!
例題
【実行結果】
お気づきの方もいるかと思いますが、 使い方はデータ型の使い方と全く同じです。
文字列クラスもStringクラス + 変数名 + =+ 値で成り立っています。
一つだけ注意していただきたいのが、 “Javaはプログラム言語”の” (ダブルクォーテーション)の部分です。 文字をコードに記述する時は、 “(ダブルクォーテーション) の間に文字を記述するのがお決まりです。
忘れずに覚えておきましょう!
とはいえ、このあたりもカリキュラムを進めていけば自然に身について行きますのでご安心を。
Step4: エラー (コンパイルエラー)
下記の場合はエラーとなります! 型や値には注意しましょう。
エラーになる記述例
上記はいずれも 「型」 と 「値」 の関係に対するエラーです。 エラーになる場合は、何かしらの間違いが必ずあります。
データ型 クラスに対して、 扱える値は決まっているので注意して記述してきましょう。
エラーメッセージは基本英語で出力されます。(設定や扱う言語次第では日本語にもできますが…)
プログラマーとして開発を行う上でエラーとは必ず出会います。(むしろないほうが怖いです)
英語で出力はされますが、メッセージの内容自体は難しいことは言っておらず、翻訳にかければわかりやすい日本語になります。また、どこのファイルのどの箇所でエラーが起きているのか?まではっきりと記述されています。
皆さんには、英語だからと避けるのではなくしっかりとエラーメッセージからエラー内容と箇所を読み取って修正作業が当たり前にできるようになることを期待しています!
提出課題
提出ファイル
- Task1_3.java
- Task1_3.class(Task1_3.classファイルがない方はTask1_3.javaファイルのみ提出してください。)
今回の課題から、ひな形などが必要になるため、Gitでリポジトリをクローンしてもらいます。git clone
java_curriculum/1-3/Task1_3.java に課題があります。
以下の添付画像のようにコンソールへ出力されるよう課題を実施し提出してください。
提出方法については、導入研修で実施した、研修課題提出方法の通りにお願いします。
