Javaとプログラミングの基礎
この章で得られるスキル:
- ✅ 自分で「Hello World」プログラムを書いて実行できる
- ✅ プログラムがどのように動くかをイメージできる
- ✅ Javaがどんな場面で使われているかを説明できる
- ✅ プログラムコードを読みやすく整理できる
1. プログラミング言語とは
プログラミング言語の役割
コンピュータは、人間の言葉をそのまま理解することができない。
そのため、コンピュータが理解できる特別な言葉(プログラミング言語) を使って指示を出す必要がある。
例:人間の言葉とプログラミング言語の違い
人間の言葉: 「画面に『こんにちは』と表示して」
↓ コンピュータは理解できない
↓ プログラミング言語で書く必要がある
Java: System.out.println("こんにちは");
プログラミング言語を使うことで、コンピュータに正確な指示を出すことができる。
プログラミング言語にはバージョンがある
プログラミング言語は、時間とともに進化している。
そのため、同じ言語でもバージョンによって書き方や機能が変わる ことがある。
例:Javaのバージョン
- Java 8(2014年リリース)
- Java 11(2018年リリース)
- Java 17(2021年リリース)
- Java 21(2023年リリース)
例:他の言語のバージョン
- Python 2 と Python 3(書き方が大きく変わった)
- JavaScript ES5 と ES6(新しい機能が追加された)
本教材では、Java 17以降を前提として学習を進める。
2. Javaとは
Javaの特徴
Javaは、1995年にSun Microsystems(現在はOracle)が開発したプログラミング言語である。
以下のような特徴がある:
| 特徴 | 説明 |
|---|---|
| どこでも動く | Windows、Mac、Linuxなど、異なるOS上で同じプログラムが動く |
| 安全 | 型チェックやメモリ管理が厳格で、エラーを防ぎやすい |
| 高速 | 実行速度が速く、大量のデータを扱うシステムに向いている |
現代では、Python、JavaScript、Goなど、メジャーな言語の大半はどこでも動く。
Javaが登場した1995年当時は、OSごとに異なるコンパイルが必要な言語が多く、「どこでも動く(Write Once, Run Anywhere)」は革新的な宣伝文句だった。
現在でもJavaの「どこでも動く」特性は重要だが、かつてほど独自の強みではなくなっている。
Javaを学ぶメリット
Javaを学ぶことには、以下のようなメリットがある:
-
求人が多い
企業の業務システムで広く使われているため、Javaエンジニアの求人が多い。 -
Androidアプリ開発ができる
Androidアプリの開発にJavaが使われている(KotlinもあるがJavaの知識があると理解しやすい)。 -
大規模な開発に向いている
銀行システムや企業の基幹システムなど、大規模で安全性が求められるシステムに使われている。
Javaが使われている場面
Javaは、以下のような場面で使われている:
- Webアプリケーション(ECサイト、業務システムなど)
- Androidアプリ(スマートフォンアプリ)
- 業務システム(銀行、証券、保険など)
- 組み込みシステム(家電製品、自動車など)
Javaは汎用性が高い言語だが、以下のような場面では他の言語が選ばれることが多い:
- 機械学習・データ分析:PythonやRが主流
- スマートフォンアプリ:iOS開発ではSwift、Android開発ではKotlinが主流(Javaも使えるが、新規開発ではKotlinが推奨される)
- 軽量なスクリプト:ShellやPythonが適している
- リアルタイム処理:CやC++が適している
ただし、これらの場面でもJavaが使われないわけではない。
プロジェクトの要件やチームのスキルセットによって、適切な言語が選ばれる。
3. Eclipseとは
Eclipseの役割
Eclipse(エクリプス) は、Javaプログラムを書くための統合開発環境(IDE: Integrated Development Environment) である。
メモ帳でもJavaプログラムを書くことはできるが、Eclipseを使うと以下のようなことができる:
| 機能 | 説明 |
|---|---|
| コードの補完 | 入力中にコードの候補を表示してくれる |
| エラーチェック | 書いたコードにエラーがあると、その場で教えてくれる |
| 実行 | ボタン一つでプログラムを実行できる |
| デバッグ | プログラムの動きを一行ずつ確認できる |
本教材では、Eclipseがインストール済みであることを前提として進める。
4. 最初のJavaプログラム:Hello World
それでは、実際にJavaプログラムを書いて実行してみよう。
細かいことは後で説明するので、まずは動かしてみることが大切である。
Hello Worldプログラム
以下は、Hello World という文字を画面に表示する、最も基本的なJavaプログラムである。
実行してみよう:
上のコードを実行すると、画面に Hello World と表示される。
Eclipseでの実行手順
Eclipseで実際にHello Worldプログラムを実行する手順は以下の通り:
-
新規Javaプロジェクトを作成
ファイル→新規→Javaプロジェクト- プロジェクト名を入力(例:
HelloWorldProject) 完了をクリック
-
新規クラスを作成
- プロジェクトを右クリック →
新規→クラス - クラス名を入力(例:
HelloWorld) public static void main(String[] args)にチェックを入れる完了をクリック
- プロジェクトを右クリック →
-
コードを書く
mainメソッドの中に、System.out.println("Hello World");を書く
-
実行する
- 上部のツールバーにある緑色の実行ボタンをクリック
- コンソールに
Hello Worldと表示される
5. プログラムの大原則
先ほど書いたHello Worldプログラムを例に、プログラミングの大原則を学ぼう。
Hello Worldプログラムの再掲
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
このコードを例に、以下の大原則を説明する。
原則1: Javaではmainメソッドを起点に実行が始まる
Javaプログラムは、mainメソッドを起点に実行が始まる。
public static void main(String[] args) {
// ここから実行が始まる
}
どんなに長いプログラムでも、必ずmainメソッドがエントリーポイント(開始地点) になる。
mainメソッドがないと、プログラムは実行できない。
mainメソッドの詳しい意味は後の章で学ぶ。今は「プログラムの開始地点」と覚えておけば良い。
原則2: プログラムは上から下に実行される
mainメソッドの中の処理は、書かれた順番に上から下に実行される。
public static void main(String[] args) {
System.out.println("1行目");
System.out.println("2行目");
System.out.println("3行目");
}
実行結果:
1行目
2行目
3行目
これは当たり前のように思えるかもしれないが、プログラミングの最も基本的なルールである。
実行してみよう:
原則3: {}(波括弧)でブロックを作り、処理をまとめる
{}(波括弧) は、複数の処理をまとめて1つのブロックにするために使う。
Hello Worldプログラムを見てみよう:
public class HelloWorld { // ← ブロック1の開始
public static void main(String[] args) { // ← ブロック2の開始
System.out.println("Hello World");
} // ← ブロック2の終了
} // ← ブロック1の終了
このプログラムには2つのブロックがある:
- ブロック1:
public class HelloWorld { ... }(外側のブロック) - ブロック2:
public static void main(String[] args) { ... }(内側のブロック)
ブロックは入れ子構造(ネスト)になることがある。
今回は、親のブロック(クラス)の中に子のブロック(mainメソッド)があるという構造になっている。
{でブロックが始まり、}でブロックが終わる。
今はHelloWorldプログラムには2つのブロックがあること、入れ子構造になっていることが分かれば十分である。詳しくは後の章で学ぶ。
波括弧{と}の対応が取れていないとエラーになる。
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
// } が足りない!エラー
エラーメッセージ例:
error: reached end of file while parsing
原因: 開き括弧{の数と閉じ括弧}の数が一致していない。
解決策:
- Eclipseでは、波括弧をクリックすると対応する波括弧が強調表示される
- 自動整形機能(
Ctrl + Shift + F)を使うと、対応が取れていない箇所が分かりやすくなる
予防策: {を書いたら、すぐに対応する}も書いてから、中身を書くと良い。
原則4: セミコロン;で命令の終わりを示す
Javaでは、1つの命令の終わりに必ずセミコロン;を付ける。
System.out.println("Hello World"); // セミコロンで終わる
セミコロンを忘れると、エラーになる:
System.out.println("Hello World") // エラー!セミコロンがない
初学者が 最もよく遭遇するエラー がセミコロン忘れである。
エラーメッセージ例:
error: ';' expected
原因: 命令の最後にセミコロン;を付け忘れている。
解決策: エラーが出ている行の最後にセミコロンを追加する。
ポイント: エラーメッセージは英語だが、「expected」は「期待していた」という意味。
「;が期待されていた」=「セミコロンがあるべきだった」ということ。
Javaでは、セミコロンがあれば改行しなくても良い。 つまり、以下のように1行で書くこともできる:
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World"); } }
セミコロン;で命令が区切られているので、改行がなくてもJavaは理解できる。
ただし、これでは非常に読みにくい。
だから、適切な場所で改行して、読みやすくする必要がある。
原則5: インデント(字下げ)で構造を見やすくする
インデント(字下げ) は、プログラムの構造を見やすくするために使う。
先ほどのHello Worldプログラムを、3つのパターンで比較してみよう:
パターン1: 改行なし(1行で書く)
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World"); } }
非常に読みにくい。 どこがブロックの始まりで、どこが終わりか分かりにくい。
パターン2: 改行あり、インデントなし
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
改行はあるが、どこがどのブロックに属しているかが分かりにくい。
パターン3: 改行あり、インデントあり(推奨)
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
最も読みやすい。 ブロックの構造が一目で分かる。
ルール:
- ブロック
{}の中に入るコードは、1段階インデントする - ブロックがネストする(入れ子になる)場合は、さらに1段階インデントする
インデントは、スペース4つまたはタブ1つのいずれかに統一するのが一般的である(チームによって異なるため、所属チームのルールに従う)。
Eclipseでは、自動整形機能でインデントをそろえられる。
補足: どこで改行できるか?
Javaでは、セミコロン;の他にも、.(ドット)など、改行できる箇所がいくつかある。
逆に、改行してはいけない箇所もある。
ただし、今は細かいルールを覚える必要はない。
基本方針:
- 読みやすいと思う箇所で改行してみる
- エラーが出たら、改行を元に戻す
こうした 「とりあえずやってみて、何がダメで何がいいのか体験して学ぶ」 ことが、 プログラミング上達の近道である。
Eclipseがエラーを教えてくれるので、安心して試してみよう。
コードの説明(振り返り)
改めて、Hello Worldプログラムの各部分を簡単に説明する。
public class HelloWorld {
public class HelloWorldは、HelloWorldという名前のクラスを定義している。- クラスとは何かは、後の章で詳しく学ぶ。今は「プログラムの入れ物」と思っておけば良い。
public static void main(String[] args) {
public static void main(String[] args)は、プログラムのエントリーポイント(開始地点) である。- Javaプログラムは、必ずこの
mainメソッドから実行が始まる。 mainメソッドの詳細は、後の章で学ぶ。
System.out.println("Hello World");
System.out.println("Hello World");は、画面にHello Worldという文字を表示する命令である。printlnは「print line(行を印刷する)」の略で、文字を表示して改行する。"Hello World"のように、"(ダブルクォート)で囲むと、それは文字列として扱われる。
6. Java 21以降の簡潔な書き方(参考)
Java 21以降では、より簡潔な書き方も可能になった:
// Java 21以降の簡潔な書き方(参考)
void main() {
System.out.println("Hello Java!");
}
ただし、本教材では従来の書き方(public classやpublic static void mainを使う書き方)を使用する。
理由:
- 従来の書き方は広く使われており、既存のコードや他の教材でもよく見かける
- 最新の書き方はまだ普及しておらず、ネット上に情報が少ない
将来的に、Java 21以降の書き方が主流になれば、その時に学び直すこともできる。
7. コメント
プログラムの中に、人間が読むためのメモを書くことができる。
これをコメントという。
コメントは、プログラムの実行には影響しない。
1行コメント
//を使うと、その行の//以降がコメントになる。
// これはコメントです
System.out.println("Hello World"); // 画面に表示する
複数行コメント
/* */を使うと、複数行にわたるコメントを書ける。
/*
* これは複数行の
* コメントです
*/
System.out.println("Hello World");
なぜコメントが必要か
コメントは、以下のような場面で役立つ:
- 後で見返したとき:自分が書いたコードを後で見返すとき、何をしているか忘れていることがある
- 他の人が読むとき:チーム開発では、他の人が自分のコードを読むことがある
- 複雑な処理の説明:難しい処理をしている部分に説明を付けると、理解しやすくなる
例:コメントがあると分かりやすい
やってみよう:
- 上のコードを実行してみよう
taxRateの値を0.08に変えて、結果がどう変わるか確認してみよう
まとめ
この章では、以下のことを学んだ:
- プログラミング言語は、コンピュータに指示を出すための特別な言葉である
- Javaは、世界中で使われている信頼性の高い言語で、求人が多く、様々な場面で活用されている
- Eclipseは、Javaプログラムを書くための便利なツールである
- Hello Worldプログラムを書いて実行できた
- プログラムの大原則:
- (Java特有) Javaでは
mainメソッドを起点に実行が始まる - (共通) プログラムは上から下に実行される
- (共通)
{}でブロックを作り、ブロックは入れ子構造になることがある - (Java特有) セミコロン
;で命令の終わりを示す - (共通) インデントで構造を見やすくする
- (Java特有) Javaでは
- 「とりあえずやってみて、体験して学ぶ」 ことがプログラミング上達の近道である
- コメントを使って、プログラムにメモを残すことができる
次の章では、変数について学ぶ。
変数は、プログラムの中でデータを保存するための「箱」のようなものである。