オブジェクト指向プログラミングの実践(簡単なクラス設計をしてみる)
新人
「先輩、Javaのオブジェクト指向って学んだけど、実際にどう設計すればいいのかまだよくわかってなくて…」
先輩
「オブジェクト指向の実践は、まず小さなクラス設計から始めるといいよ。今回は、初心者でもわかるようにクラスを設計してみようか。」
新人
「お願いします!実際にJavaで作ってみたいです。」
先輩
「もちろん。Pleiadesを使って開発すればすぐ試せるし、まずは設計の考え方から見ていこう!」
1. オブジェクト指向プログラミングの実践とは?(考え方をやさしく解説)
オブジェクト指向プログラミングとは、「モノ」を中心に考えてプログラムを作る方法です。Javaではこの考え方がとても大切です。
たとえば、「自動販売機」を考えてみましょう。「商品を出す」「お金を入れる」などの機能がありますよね。オブジェクト指向では、この「自動販売機」というモノに機能を持たせてプログラムを組み立てます。
このように、現実世界のモノと動きをプログラムの中で表現することで、わかりやすく、整理されたコードを書くことができます。
Javaでは、「クラス」という設計図を使って、「インスタンス」という実物を作ります。この考え方がオブジェクト指向の基本であり、実際のプログラム設計にも使われています。
初心者のうちは難しく考えすぎず、「クラスは何かのモノを表していて、その中にそのモノの情報と動きを書くんだな」と覚えておくと良いでしょう。
2. Javaのクラス設計をする前に知っておきたいこと(初心者目線)
クラスを設計する前に、まず考えてほしいのが「何を作りたいのか」「どんな情報と動きが必要か」ということです。
たとえば、「生徒」の情報を扱うプログラムを作りたいとします。この場合、クラスの名前は「Student(生徒)」がぴったりです。
その生徒が持っている情報として、「名前」や「年齢」、「点数」などがあります。これらはクラスの中で変数として管理します。
また、生徒が「自己紹介をする」や「点数を表示する」といった動きもあります。これらはクラスの中にメソッドとして書くことができます。
つまり、クラスには2つの要素があります。
- 情報(フィールド):名前や年齢、点数など
- 動き(メソッド):自己紹介する、点数を表示するなど
このように、「モノ」に関連する情報と動きをセットでまとめるのがJavaのクラス設計の基本です。
クラスを設計するときのポイントは、「シンプルにすること」と「そのクラスの目的をはっきりさせること」です。たとえば、「生徒」というクラスに「試験管理」や「出席管理」など、関係のないことまで入れてしまうとごちゃごちゃになります。
なので、ひとつのクラスはひとつのモノや目的に絞るようにしましょう。初心者でもこの考え方を身につけておけば、Javaでのオブジェクト指向設計がスムーズになります。
次は、実際にクラスを作ってJavaで動かしてみましょう。
3. Javaでクラスを定義してみよう(やさしいサンプルコード)
それでは、実際にJavaでクラスを定義してみましょう。今回は「Student(生徒)」というクラスを作ります。このクラスには、生徒の「名前」と「点数」を情報として持ち、「情報を表示する」という動きをメソッドで書いてみます。
まずは、クラスを定義する基本の形を確認しましょう。
public class Student {
String name;
int score;
void showInfo() {
System.out.println(name + "さんの点数は" + score + "点です。");
}
}
このコードでは、Studentクラスの中に、name(名前)とscore(点数)という2つの情報を変数として持たせています。
そしてshowInfo()というメソッドを使って、その情報を表示する機能を追加しています。これが「動き」にあたる部分です。
クラスを定義するには、まずpublic class クラス名という形でスタートし、その中に情報とメソッドをセットで書いていくのが基本です。
このようにクラスを定義することで、「生徒」というオブジェクトの設計図が完成します。次はこのクラスを使って、実際にインスタンスを作ってみましょう。
4. クラスからインスタンスを作って使ってみよう
クラスを定義したら、次はそのクラスをもとに「インスタンス(実物)」を作って使ってみましょう。Javaでは、newというキーワードを使ってクラスからインスタンスを作ることができます。
先ほどのStudentクラスを使って、実際に2人の生徒を作り、それぞれの点数を表示してみます。
public class Main {
public static void main(String[] args) {
Student s1 = new Student();
s1.name = "たろう";
s1.score = 85;
Student s2 = new Student();
s2.name = "はなこ";
s2.score = 92;
s1.showInfo();
s2.showInfo();
}
}
たろうさんの点数は85点です。
はなこさんの点数は92点です。
このように、同じStudentクラスから何人ものインスタンスを作ることができます。それぞれに異なる名前や点数を入れることで、別々のデータとして管理できます。
この仕組みがJavaの「オブジェクト指向」の基本であり、「同じ型(クラス)のモノをたくさん作る」ことがとても簡単になります。
また、showInfo()のようなメソッドをクラスに定義しておくことで、インスタンスからその機能を呼び出すだけで動作するので、コードの見通しも良くなります。
Pleiadesを使えば、これらのコードをすぐに書いて実行できます。まずは、上のサンプルをコピーして、新しいプロジェクトを作り、動かしてみてください。
自分の名前や点数を変えてみるなど、いろいろ試していくことで、Javaのクラスやインスタンスの使い方がだんだんと身についてきますよ。
次は、複数のクラスを使って、クラス同士の関係を持たせた設計にもチャレンジしてみましょう。
5. クラスの中にメソッドを作って動きを追加しよう
これまでに、Javaのクラスには「情報(フィールド)」を入れることができると学びました。ここではさらに、「動き(メソッド)」を追加して、もっと実践的な使い方を覚えていきましょう。
メソッドとは、クラスの中で定義する「処理のかたまり」のことです。たとえば、「自己紹介する」や「点数を表示する」などの動きをメソッドにしておけば、インスタンスから簡単に呼び出せるようになります。
では、Javaのクラスにメソッドを追加してみましょう。以下のコードは、「生徒が自己紹介をする」メソッドを持つクラスの例です。
public class Student {
String name;
int score;
void showInfo() {
System.out.println(name + "さんの点数は" + score + "点です。");
}
void introduce() {
System.out.println("こんにちは、私は" + name + "です。よろしくお願いします。");
}
}
introduce()というメソッドを追加することで、「名前を自己紹介する」という動きを定義しています。
このメソッドは、System.out.println()でメッセージを出力するだけの簡単なものですが、実際の開発でもこのようにシンプルなメソッドから始めていくことが大切です。
インスタンスからこのメソッドを呼び出すには、次のように書きます。
Student s1 = new Student();
s1.name = "たろう";
s1.introduce();
こんにちは、私はたろうです。よろしくお願いします。
このように、クラスの中に処理をメソッドとしてまとめることで、Javaのプログラムが整理されて見やすくなります。
メソッドを使えば、同じ処理を何回も書かなくて済むため、初心者のうちから「動きはメソッドにまとめる」と覚えておくと、実践で役に立ちます。
6. 実践!簡単なクラス設計でプログラム全体を作ってみよう
それでは、これまでに学んだことを使って、Javaのクラスを設計し、簡単なプログラム全体を作ってみましょう。今回は「生徒が自己紹介をして点数を表示する」という流れをひとつのプログラムにまとめます。
まずはクラスの定義です。生徒の情報と動きを持たせたStudentクラスを作ります。
public class Student {
String name;
int score;
void introduce() {
System.out.println("こんにちは、私は" + name + "です。");
}
void showScore() {
System.out.println("テストの点数は" + score + "点です。");
}
}
次に、mainメソッドのあるクラスを作って、インスタンスを使って動かします。
public class Main {
public static void main(String[] args) {
Student s1 = new Student();
s1.name = "たろう";
s1.score = 85;
Student s2 = new Student();
s2.name = "はなこ";
s2.score = 92;
s1.introduce();
s1.showScore();
s2.introduce();
s2.showScore();
}
}
こんにちは、私はたろうです。
テストの点数は85点です。
こんにちは、私ははなこです。
テストの点数は92点です。
このように、クラスを定義して、インスタンスを作って、メソッドを呼び出すだけで、実用的なJavaプログラムが完成します。
Pleiadesでこのコードを実行してみれば、クラス設計がどのように役立つかが体感できるはずです。初心者向けの実践としてはぴったりの内容なので、ぜひ書いて動かしてみましょう。
7. 振り返りと初心者へのアドバイス
ここまで、Javaのオブジェクト指向プログラミングの実践として、簡単なクラス設計の流れを一緒に体験してきました。
ポイントは、「クラスはモノの設計図」であり、「インスタンスはその実物」であるということです。クラスの中に情報(フィールド)と動き(メソッド)をまとめておくことで、整理されたプログラムが書けるようになります。
また、Javaでは同じクラスを何度でも使ってインスタンスを作ることができるため、再利用しやすく、効率的な設計ができます。これは、初心者が学んでおくと今後のプログラミングでも大きな力になります。
最初は、「クラスって難しそう」と思うかもしれません。でも、実際に書いてみると、そんなに難しいものではないことがわかります。
Pleiadesを使って手を動かしながら練習することで、理解がぐっと深まります。まずは今回紹介した「Studentクラス」のような簡単なモノからはじめて、自分の身近なテーマで新しいクラスを作ってみるのもおすすめです。
たとえば「ペットクラス」や「商品クラス」など、身の回りのものをJavaで表現してみると、楽しみながら学ぶことができます。
少しずつでいいので、クラスを作る → インスタンスを作る → メソッドを使う という流れを繰り返していくことで、自然とオブジェクト指向の考え方が身につきます。
これからJavaのプログラミングを学んでいくうえで、クラス設計の基本をしっかり身につけておくことはとても大切です。焦らず、ひとつひとつを丁寧に進めていきましょう。