トップ / カリキュラム / 第3章

CHAPTER 03

プログラムの基本の形

画面に「Hello」と表示するだけの、たった5行のプログラム。ここにJavaの基本要素がすべてそろっています。1行ずつ分解して、Javaのプログラムの「形」を身につけます。

読む目安:約20分Hello Worldを「読む」

この章でわかること

  1. Hello Worldの各行が何をしているか、おおまかに説明できる
  2. 「クラス」「メソッド」「文」「ブロック」という4つの構成要素を見分けられる
  3. Javaのコードを見たときに、どこから読み始めればよいかわかる

まずは全体を眺める

プログラミングの世界には、新しい言語を学ぶとき最初に「Hello, World!」と画面に表示するプログラムを書く、という伝統があります。Javaでは次のようになります。

// 画面に Hello と表示するだけのプログラム
public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello");
    }
}

読み方のコツ:最初は全部を理解しようとせず、「{ と } で囲まれた箱が入れ子になっている」ことと、「真ん中あたりに命令が1行ある」ことだけ見てください。

この5行を、外側から内側に向かって分解していきます。

外側の箱:クラス

public class Hello {
    ... ここに中身が入る ...
}

Javaのプログラムは、必ずクラス(class)という箱の中に書きます。クラスは「プログラムの部品を1つにまとめる単位」で、ここでは Hello という名前の箱を作っています。

  • public:この箱は「どこからでも使ってよい」という公開範囲の指定(第6章で詳しく)
  • class:「ここからクラスの定義が始まります」という合図
  • Hello:クラスの名前。エンジニアが自由に付ける。慣例として先頭は大文字
  • { 〜 }:箱の始まりと終わり。この範囲をブロックと呼ぶ

Javaでは、1つのファイルに1つの公開クラスを書き、ファイル名とクラス名を一致させるルールがあります。つまりこのプログラムは Hello.java というファイルに保存されます。業務システムのコードを見ると、Invoice.java(請求書)、JournalEntry.java(仕訳)のように、業務上の「もの」の名前がクラス名になっていることがよくあります。

内側の箱:メソッド

    public static void main(String[] args) {
        ... ここに処理が入る ...
    }

クラスの中には、メソッド(method)という「処理のかたまり」を書きます。メソッドは「ある仕事をするための手順書」で、名前を付けて呼び出せるようにしたものです。ここでは main という名前のメソッドを定義しています。

この main メソッドは特別で、JVMがプログラムを起動するとき、最初に探して実行する場所と決まっています。本の「はじめに」のようなもので、Javaのプログラムを読むときは、まず main を探せば入口が見つかります。

  • publicどこからでも呼べる(JVMから呼ばれるので公開が必要)
  • staticクラスの「設計図」から直接呼べる、という指定。第6章で意味がはっきりします。今は「mainにはこれを付けるお約束」で十分
  • voidこの処理は「結果の値を返さない」という意味。計算して答えを返すメソッドなら、ここが int(整数)などになる
  • mainメソッドの名前。入口の目印
  • (String[] args)外から受け取る情報の入れ物(引数)。「文字列の一覧を args という名前で受け取る」の意味。使わなくても書く決まり

5つも修飾語が並んでいて面食らいますが、public static void main(String[] args) は決まり文句です。Javaエンジニアもこの一行は半ば呪文として覚えています。意味は後からついてきます。

いちばん内側:文(命令)

        System.out.println("Hello");

ようやく「実際に何かをする」行にたどり着きました。この1行を文(statement)と呼び、Javaでは文の終わりに必ずセミコロン ; を付けます。日本語の「。」に相当します。

  • System標準ライブラリに入っている「システム全般」を扱うクラス
  • .outその中の「標準出力」(ふつうは画面)を表すもの。. は「〜の中の」と読む
  • .println(...)「カッコの中身を表示して改行する」というメソッド。print line の略
  • "Hello"表示したい文字列。文字列は必ずダブルクォート " で囲む
  • ;文の終わり

つまりこの行は「システムの、標準出力の、1行表示メソッドに、"Hello" という文字列を渡して実行せよ」と読めます。英語の語順と同じで、左から右へ「大きなもの → その中の小さなもの → 動作」と絞り込んでいきます。

全体をもう一度:4つの構成要素

クラス class Hello { ... }部品をまとめる箱。ファイル1つに対応
メソッド main(...) { ... }処理のかたまり。名前を付けて呼び出せる
文 System.out.println("Hello");実際の命令。末尾に ;
ブロック({ })が入れ子になっていて、外側がクラス、中がメソッド、いちばん内側に文が並ぶ。業務システムのコードが何千行あっても、構造はこの入れ子の繰り返しです。

コメント:人間のためのメモ

// 1行だけのコメント。この行はプログラムの動きに影響しない

/*
   複数行にわたるコメント。
   処理の意図や、注意点を書く
 */

// から行末まで、または /* と */ の間に書かれた文章はコメントと呼ばれ、コンパイラは完全に無視します。人間が読むためのメモです。

非エンジニアがコードを読むとき、コメントは最大の味方です。良いコードには「なぜこうしているか」がコメントで書かれています。逆に、コメントがほとんどないコードは、エンジニア同士でも読み解きに時間がかかります。レビューや引き継ぎの場面で「コメントが少なくて困る」という話が出るのはこのためです。

ちょっとだけ大きくしてみる

Hello Worldの形が分かったところで、もう少し業務っぽい例を読んでみましょう。文が3つに増えただけで、構造は同じです。

public class InvoiceReport {
    public static void main(String[] args) {
        System.out.println("=== 請求書一覧 ===");
        System.out.println("2026年9月分:3件");
        System.out.println("合計金額:330,000円");
    }
}

読んでみる:InvoiceReport(請求書レポート)というクラスの main が、3行の文字列を順番に表示している。上から下へ、書かれた順に実行されます。

ただし、このプログラムは「3件」「330,000円」という数字を人が直接書き込んでいます。本物のシステムでは、これらの数字はデータベースから取ってきて計算します。そのためには「値を一時的に入れておく箱」と「計算のルール」が必要です。それが次の第4章「変数と型」のテーマです。

打合せで役立つ視点

エンジニアが画面にコードを映して「このクラスの、このメソッドで処理しています」と言ったら、「箱(クラス)の中の、手順書(メソッド)の話をしている」と分かれば十分です。「このメソッドは何を受け取って、何を返すのですか?」と聞くと、処理の入口と出口が明確になり、会話がかみ合いやすくなります。

この章のまとめ

  • Javaのプログラムは「クラス(箱)> メソッド(手順書)> 文(命令)」の入れ子構造。{ } がブロックの範囲
  • public static void main(String[] args) はプログラムの入口を示す決まり文句。コードを読むときはまず main を探す
  • 文は ; で終わる。System.out.println("...") は「画面に1行表示」
  • ファイル名とクラス名は一致させる。// や /* */ はコメントで、人間のためのメモ

確認クイズ

この章の内容を3問で確かめましょう。選ぶとすぐに解説が表示されます。

Q1. Javaのプログラムを読み始めるとき、最初に探すとよい「入口」はどれですか?

JVMはプログラム起動時に main メソッドを探して実行します。本でいう「はじめに」にあたる入口です。

Q2. System.out.println("Hello"); の末尾の ;(セミコロン)は何を表していますか?

Javaでは1つの文の終わりに必ず ; を付けます。日本語の「。」に相当します。クラスやメソッドの終わりは } です。

Q3. // で始まる行についての説明として正しいものはどれですか?

コメントはコンパイラに無視されます。コードを読む非エンジニアにとっては、処理の意図を知る最大の手がかりです。

読み終えたら、読了にしておきましょう。トップページのカリキュラムに記録が付きます(このブラウザ内だけに保存されます)。