文系の人でもプログラミングって理解できるのでしょうか?
プログラマーは理系出身者ばかりではありません。もちろん文系出身者でもプログラミングできます。
恐らく大多数の方はプログラミングは理系出身者でないと理解に苦しむと思ってらっしゃると思います。
いつの時代からそうなったのかはわかりませんが、プログラミングと聞くと難しい言語での難しい記述の塊だと思われがちです。
しかし実際に触ってみると、一定の法則に従って記述ルールが決められているので至ってシンプルなんです。
今回はそんなプログラミングの中でもJavaについて、実際には全然ハードルは高くないと理解いただけるような具体的な説明と、効率よく学習する為の基礎知識の解説をしていきたいと思います。
基本用語を理解する
初めてプログラミングについて学習してみようとする方が参考書をサラッと読んでも全く理解できないということは多々あります。
この理由としては、圧倒的な基本用語の知識不足が挙げられます。
私たちが普段何気なく使っている日本語でも同じことが言えますが、意味の分からない用語が出てくると、途端に理解度が著しく低下します。
まずは基本用語をしっかりと理解し、効率よく学習できる土台を作りましょう。
次からは基本用語について解説していきます。
クラスとメソッド
メソッドや変数で構成されたものをクラスと呼びます。メソッドはクラスが持つ機能のことです。
基本的にクラスは以下のように記述します。
class クラス名 { 変数; メソッド名 (引数) { 実行処理… } }
文字列と数値
プログラミングの世界では、単語や文のことを”文字列”、数のことを”数値”と呼びます。
文字列はクォーテーションで囲む必要が有りますので覚えてください。
文字列と数には明確な違いがあり、たとえ数であっても文字として表示させる場合には、足し算や引き算などの計算には使えません。
シングルクォーテーションとダブルクォーテーション
文字を扱う場合に使われるクォーテーションには2種類あり、以下の様に使い分けます。
‘ ‘(シングルクォーテーション) – “一文字”だけの文字や記号を扱う場合に使用
” “(ダブルクォーテーション) – 2文字以上の単語や文(記号を含む)を扱う場合に使用
変数と型
情報を一時的に格納する箱を変数と呼びます。
型とは変数(箱)を形成する素材だと思ってください。
実際の箱でも段ボールであったり木箱であったりと素材は様々ですよね?プログラムも同じであり、変数の型にはいくつかのタイプが存在します。
具体的には以下の通りです。
– プリミティブ型 –
- 文字型(char)
- 数値型(byte、short、int、long、double、float)
- 論理型(boolean)
– 参照型 –
- 配列型
- クラス型
- インターフェース型
Javaでは、変数を設定する事を「初期化」と言い、変数を初期化する場合には型の宣言をしなければならないルールがあります。
初期化は最初に設定するときだけ必要となり、2回目以降は使い回すことが出来ます。
例えば、sampleと名付けた変数に文字列を格納したい場合は以下のように記述します。
String sample = "文字列";
なお、末尾の「;(セミコロン)」は命令の終了を示す命令区切り文字です。
引数と戻り値
メソッドに渡す値を引数(ひきすう)と呼び、メソッド内で処理され返ってくる値を戻り値と呼びます。
例えば2つの値の足し算をするメソッドを作成した場合、2つの値が引数で和が戻り値となります。
演算子
簡単に説明すると記号のことを言います。
四則計算のための算術演算子や代入演算子、比較演算子などがあります。
各演算子の詳細は以下の通りです。
– 算術演算子 –
- +(加算):a + b
- -(減算):a – b
- *(乗算):a * b
- /(除算):a / b
- %(剰余):a % b
public class Main { public static void main(String[] args) { // 変数の初期化 int a; int b; int c; // 代入 a = 10; b = 3; // 加算 c = a + b; System.out.println("c = " + c); // 減算 c = a - b; System.out.println("c = " + c); // 乗算 c = a * b; System.out.println("c = " + c); // 除算 c = a / b; System.out.println("c = " + c); // 剰余 c = a % b; System.out.println("c = " + c); } }
実行結果
c = 13 c = 7 c = 30 c = 3 c = 1
– インクリメント・デクリメント演算子 –
- ++(2つ続けて+):a++
- –(2つ続けて-):a–
インクリメントは数値に1を加算する演算子で、デクリメントは逆に数値から1を減算する演算子です。
インクリメント/デクリメントには前置と後置があり、演算子を数値の前に置くか後に置くかで結果が異なります。
前置は1を足した後で変数に値を代入しますが、後置は先に変数に値を代入した後で1を足します。
public class Main { public static void main(String[] args) { // 変数の初期化 int a; int b; // 前置インクリメント a = ++b; System.out.println("前置インクリメント"); System.out.println("a = " + a); System.out.println("b = " + b); // 変数を「0」に戻す a = 0; b = 0; // 後置インクリメント a = b++; System.out.println("後置インクリメント"); System.out.println("a = " + a); System.out.println("b = " + b); // 変数を「0」に戻す a = 0; b = 0; // 前置デクリメント a = --b; System.out.println("前置デクリメント"); System.out.println("a = " + a); System.out.println("b = " + b); // 変数を「0」に戻す a = 0; b = 0; // 後置デクリメント a = b--; System.out.println("後置デクリメント"); System.out.println("a = " + a); System.out.println("b = " + b); } }
実行結果
前置インクリメント a = 1 b = 1 後置インクリメント a = 0 b = 1 前置デクリメント a = -1 b = -1 後置デクリメント a = 0 b = -1
– 代入演算子 –
- =:代入
- +=:加算して代入
- -=:減算して代入
- *=:乗算して代入
- /=:除算して代入
- %=:剰余して代入
public class Main { public static void main(String[] args) { int a; // 変数の初期化 a = 3; // 代入 // a = a + 1と同じ意味 a += 1; System.out.println("a = " + a); // a = a - 1と同じ意味 a -= 1; System.out.println("a = " + a); // a = a * 1と同じ意味 a *= 2; System.out.println("a = " + a); // a = a / 1と同じ意味 a /= 2; System.out.println("a = " + a); // a = a % 1と同じ意味 a %= 2; System.out.println("a = " + a); } }
実行結果
a = 4 a = 3 a = 6 a = 3 a = 1
– 比較演算子 –
- >:aはbより大きい(a > b)
- >=:aはb以上(a >= b)
- <:aはbよりも小さい(a < b)
- <=:aはb以下(a <= b)
- ==:aとbは同じ(a == b)
- !=:aとbは同じでない(a != b)
– 短絡演算子 –
- ||:a,bどちらかの条件が成立すればtrue(a || b)
- &&:aとbが両方成立すればtrue(a && b)
- !:aではないときtrue(!a)
まとめ
今回はJavaプログラミングに欠かせない基本的な部分の解説をしてみました。
用語についてはまだまだありますが、このようにまず最初に用語の知識を付けてしまえば参考書を見ても今までより格段に理解できるようになっているはずです。
今まで挫折してきた方もこれを機に用語を徹底的に覚え、再度プログラミングの世界に足を踏み入れてみてはいかがでしょうか。
クラスとメソッドの関係を料理に例えるなら、クラスが”食材”でメソッドは”調理方法”です。
例えばチャーハンを作るとします。
必要な食材は人それぞれですが、概ね”米、卵、肉、人参、玉ねぎ”は使います。
これらの食材を調理して最終的に全ての食材を混ぜ合わせるとチャーハンの完成です。
プログラミングも一緒でクラス毎にメソッドがあり、これらのクラスを組み合わせることで最終的に期待通り動作するシステムが完成するわけです。