Java入門 STEP20|Javaの基礎を使ってプログラムを作ろう
ここまで学んだことを使ってみよう
STEP19まで、Javaの基本的な書き方を1つずつ学んできました。
変数から始まり、条件分岐やループ、メソッド、クラス、継承、List、Map、例外処理など、最初のころと比べると使えるものもかなり増えています。
ただ、実際にプログラムを作るときは、
「今回はfor文を使うプログラムを作ろう」
「今日はListだけを使おう」
というようには考えません。
作りたいものに合わせて、これまで学んだ仕組みを組み合わせていきます。
今回は簡単な商品管理プログラムを作りながら、それを体験してみましょう。
今回作るもの
商品について、
- 商品ID
- 商品名
- 価格
を登録します。
複数の商品をListで管理して、登録されている商品の表示や、商品IDを使った検索ができるプログラムを作ります。

今まで覚えたものを組み合わせて、ちゃんと1つのプログラムにするんだね♪
まずは必要なものを考えよう
いきなりコードを書き始める前に、どんなものが必要なのか考えてみます。
今回は商品を扱うので、まず商品を表すクラスが必要です。
商品が持つ情報は、
商品ID
商品名
価格
の3つにします。
そして、複数の商品を管理するためにListを使います。
大まかには、
商品を作る
↓
Listに商品を追加する
↓
登録されている商品を表示する
↓
商品IDを指定して検索する
という流れです。
プログラムを書く前にこのくらいの流れを考えておくだけでも、「何から作ればいいのか分からない」状態になりにくくなります。
Productクラスを作ろう
まずは、商品を表すProductクラスを作ります。
public class Product {
private int id;
private String name;
private int price;
public Product(int id, String name, int price) {
this.id = id;
this.name = name;
this.price = price;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public int getPrice() {
return price;
}
}ここには、新しい文法はありません。
以前学んだカプセル化とコンストラクタを使っています。
フィールドはprivateにして、値を取得するためのgetterを用意しています。
そして、
public Product(int id, String name, int price)というコンストラクタを使って、商品を作るときに必要な情報を受け取れるようにしています。
例えば、
Product product = new Product(1, "ノートPC", 120000);とすれば、
商品ID:1
商品名:ノートPC
価格:120000
という情報を持つ商品を作れます。

新しいことをしてるように見えるけど、クラスやコンストラクタは前にやったことだね!
商品をListで管理しよう
商品を1つだけではなく、複数登録できるようにします。
STEP17で学んだListとArrayListを使いましょう。
実行用クラスは、他のサンプルと重なりにくいようにProductManagementSampleとします。
import java.util.ArrayList;
import java.util.List;
public class ProductManagementSample {
public static void main(String[] args) {
List<Product> products = new ArrayList<>();
products.add(new Product(1, "ノートPC", 120000));
products.add(new Product(2, "マウス", 3000));
products.add(new Product(3, "キーボード", 8000));
}
}STEP17では、
List<String>を使いました。
今回は、
List<Product>になっています。
ListにはStringやIntegerだけでなく、自分で作ったクラスのオブジェクトも入れることができます。
Listにはオブジェクトも入れられる
List<Product> products = new ArrayList<>();とすると、Product型のオブジェクトを複数管理できます。
実際のプログラムでも、複数のオブジェクトをListで扱うことはよくあります。
登録した商品を表示しよう
商品を登録できたので、次はすべての商品を表示してみます。
先ほどのProductManagementSampleに処理を追加します。
import java.util.ArrayList;
import java.util.List;
public class ProductManagementSample {
public static void main(String[] args) {
List<Product> products = new ArrayList<>();
products.add(new Product(1, "ノートPC", 120000));
products.add(new Product(2, "マウス", 3000));
products.add(new Product(3, "キーボード", 8000));
for (Product product : products) {
System.out.println(
"商品ID:" + product.getId()
+ " 商品名:" + product.getName()
+ " 価格:" + product.getPrice() + "円"
);
}
}
}実行結果
商品ID:1 商品名:ノートPC 価格:120000円
商品ID:2 商品名:マウス 価格:3000円
商品ID:3 商品名:キーボード 価格:8000円
ここでは拡張forを使って、productsからProductを1つずつ取り出しています。
そして、
product.getName()のようにgetterを使って商品の情報を取得しています。
List・ループ・クラス・カプセル化が、ここで一緒に使われています。
商品を検索できるようにしよう
次は、商品IDを使って商品を検索します。
例えば、
商品ID:2
を探して、見つかったら商品の情報を表示するようにします。
まずは検索処理をメソッドとして作ってみましょう。
public static Product findProduct(
List<Product> products, int searchId) {
for (Product product : products) {
if (product.getId() == searchId) {
return product;
}
}
return null;
}少し長くなりましたが、やっていることを順番に見れば難しくありません。
まず、
for (Product product : products)で商品を1つずつ取り出します。
そして、
if (product.getId() == searchId)で、商品のIDと探しているIDが同じか確認しています。
同じ商品が見つかったら、
return product;でその商品を返します。
最後まで見つからなかった場合は、
return null;としています。
nullは、ここでは「該当する商品がない」ことを表しています。
検索結果を確認しよう
では、検索処理も含めて動かしてみます。
import java.util.ArrayList;
import java.util.List;
public class ProductSearchSample {
public static void main(String[] args) {
List<Product> products = new ArrayList<>();
products.add(new Product(1, "ノートPC", 120000));
products.add(new Product(2, "マウス", 3000));
products.add(new Product(3, "キーボード", 8000));
int searchId = 2;
Product foundProduct = findProduct(products, searchId);
if (foundProduct != null) {
System.out.println("商品が見つかりました");
System.out.println("商品名:" + foundProduct.getName());
System.out.println("価格:" + foundProduct.getPrice() + "円");
} else {
System.out.println("商品が見つかりませんでした");
}
}
public static Product findProduct(
List<Product> products, int searchId) {
for (Product product : products) {
if (product.getId() == searchId) {
return product;
}
}
return null;
}
}実行結果
商品が見つかりました
商品名:マウス
価格:3000円
今回検索したIDは2です。
そのため、IDが2の「マウス」が見つかっています。
もし、
int searchId = 10;に変更すると、IDが10の商品は登録されていないため、
商品が見つかりませんでした
と表示されます。

Listから取り出して、ifで調べて、メソッドから結果を返してる!
今まで別々に覚えたものが一緒に動いてるね♪
どの知識を使っている?
ここで一度、今回のプログラムを振り返ってみましょう。
Productでは、
クラス・フィールド・コンストラクタ・カプセル化
を使いました。
複数の商品を管理するために、
List・ArrayList
を使っています。
すべての商品を確認したり検索したりするときには、
ループ
を使っています。
商品IDが一致するか、検索結果が見つかったかを判断するために、
条件分岐
を使っています。
検索処理を分けるためには、
メソッド
を使いました。
今回、新しい文法をたくさん覚えたわけではありません。
これまで覚えたものを組み合わせただけです。
プログラムは知識を組み合わせて作る
Javaを学習するときは、文法を1つずつ覚えていきます。
実際にプログラムを作るときは、その中から必要なものを選んで組み合わせます。
「何の文法を使うか」から考えるのではなく、「何をしたいのか」を考えて、そのために必要なものを選ぶことが大切です。
少し改造してみよう
ここまで動かせたら、コードをそのまま終わりにせず、少し変更してみるのもおすすめです。
例えば、
商品を1つ追加する
検索する商品IDを変更する
価格が5000円以上の商品だけ表示する
といった変更なら、これまで学んだ範囲でできます。
余裕があれば、
商品名を指定して検索できるようにする
という変更にも挑戦してみてください。
最初から大きなプログラムを作ろうとする必要はありません。
動いているコードを少し変えて、
ここを変えたらどうなる?
と試してみることも、Javaに慣れるための良い練習になります。

まず動かして、それからちょっとずつ改造!
自分で変えたところが思った通り動くとうれしいよね♪
今回はJava入門編の最後のSTEPです。
まずは答えを調べたり生成AIにコードを書いてもらったりする前に、ここまで学んだ内容を思い出しながら、自分で考えて変更してみましょう。
分からなくなった場合も、すぐに答えを見るのではなく、
「どのSTEPで学んだ内容が使えそうか」
「どこまでは自分で分かっているか」
を一度整理してみることが大切です。
それでも分からない場合は、これまでの記事に戻って確認してみましょう。
自分で考えて試した経験は、これから新しい技術を学ぶときにも役立ちます。
よくある間違い
Product.javaを作らずに実行する
今回のプログラムではProductクラスを使用しています。
そのため、実行用クラスだけではなく、最初に作った、
Product.javaも必要です。
同じプロジェクト内に用意してから実行しましょう。
Listに入れる型を間違える
今回はProductを管理するため、
List<Product> products = new ArrayList<>();としています。
List<String>ではありません。
何をListに入れたいのかを確認して型を指定しましょう。
nullの確認をせずに使ってしまう
商品が見つからなかった場合、findProduct()はnullを返します。
そのため、
if (foundProduct != null)で確認してから商品の情報を取得しています。
見つからなかった場合の処理も忘れないようにしましょう。
STEP20のまとめ
STEP20のポイント
- 実際のプログラムでは、複数のJavaの知識を組み合わせて使う
- クラスを使って、扱いたいデータをまとめられる
- Listを使って、複数のオブジェクトを管理できる
- ループを使って、複数のデータを順番に処理できる
- 条件分岐を使って、必要なデータを判断できる
- メソッドを使って、処理を役割ごとに分けられる
- まず何を作りたいのか考えてから、必要な仕組みを選ぶ
ここまで学んだ内容をすべて暗記している必要はありません。
忘れた書き方があれば、そのときに前のSTEPへ戻って確認すれば大丈夫です。
大切なのは、「こういうことができたはず」と思い出して、必要な情報を調べながらコードを書けることです。

最初は1行ずつだったJavaが、ちゃんと1つのプログラムになったね♪
ここまでおつかれさま!
Java入門編クリア!
STEP1からSTEP20まで、Javaの基本を順番に学んできました。
最初は見慣れなかったコードも、ここまで進めてきたことで、少しずつ「これはクラス」「ここはメソッド」「この処理ならListが使えそう」と読み取れるようになっているはずです。
もちろん、Javaの学習はこれで終わりではありません。
実際にコードを書いていると、まだ知らないクラスやメソッド、書き方にもたくさん出会います。
そんなときも、全部覚えてから先へ進もうとする必要はありません。
分からないものが出てきたら調べる。
コードを書いて試してみる。
うまく動かなければ原因を確認する。
その繰り返しで、できることを少しずつ増やしていきましょう。
次の学習へ
Javaの基本が分かってきたら、次はSQLを学んでいきます。
実際のシステムでは、Javaだけで処理が完結するのではなく、データベースに保存されている情報を取得したり、新しいデータを登録したりすることがよくあります。
そのデータベースを操作するために使われるのがSQLです。
Javaとは書き方が大きく違いますが、
「データを登録する」
「必要なデータを探す」
「データを変更する」
といった、実際のシステム開発につながる操作を学んでいきます。
次はSQL入門へ進みましょう。
Java入門 STEP1~20、おつかれさまでした!
