「Javaのクラスって何?」「設計図って言われてもピンとこない…」
Javaを学び始めると、最初に出てくるのが「クラス」という概念。教科書には「クラスは設計図」と書いてありますが、いまいちイメージが湧かない方も多いのではないでしょうか?
この記事では、プログラミング初心者の方でも「なるほど!」と思えるように、たい焼きを例にしながらクラスを解説していきます。この記事を読めば、Javaの「クラス」と「オブジェクト」の関係がスッキリ理解できますよ。
クラスとは?「たい焼きの型」で理解しよう
結論から言うと、クラスは「モノを作るための設計図(型)」です。
でも、これだけだとわかりにくいですよね。そこで、たい焼き屋さんを想像してみてください。
たい焼きの「型」と「たい焼き」の関係
たい焼き屋さんには、たい焼きを焼くための「型(金型)」がありますよね。
- 型(金型):たい焼きの形を決めるもの。これ自体は食べられない
- たい焼き:型を使って実際に作られたもの。食べられる!
プログラミングの世界では、
- クラス = たい焼きの型(設計図)
- オブジェクト(インスタンス) = 実際に作られたたい焼き
という関係になります。
型が1つあれば、たい焼きは何個でも作れますよね?同じように、クラスを1つ定義すれば、オブジェクトは何個でも作れるんです。
もう少し具体的に見てみよう
「車」を例にしてみましょう。
クラス「Car(車の設計図)」には、こんな情報が書かれています。
- 車には「色」がある
- 車には「メーカー」がある
- 車は「走る」ことができる
- 車は「止まる」ことができる
この設計図(クラス)をもとに、実際の車(オブジェクト)を作ります。
- 赤いトヨタの車(オブジェクトA)
- 青いホンダの車(オブジェクトB)
- 白い日産の車(オブジェクトC)
設計図は同じでも、色やメーカーが違う「別々の車」を作れるわけです。
クラスの基本構造を見てみよう
実際のJavaコードで、クラスがどう書かれるか見てみましょう。難しく考えず、「こんな形なんだな」程度でOKです。
// 車クラスの定義(設計図)
public class Car {
// 属性(データ):車が持つ情報
String color; // 色
String maker; // メーカー
// メソッド(機能):車ができること
void run() {
System.out.println("走ります!");
}
void stop() {
System.out.println("止まります!");
}
}
クラスは大きく2つの要素で構成されています。
| 要素 | 説明 | 車の例 |
|---|---|---|
| 属性(フィールド) | そのモノが持つ「データ・情報」 | 色、メーカー、排気量など |
| メソッド | そのモノができる「動作・機能」 | 走る、止まる、曲がるなど |
オブジェクト(インスタンス)を作ってみよう
クラス(設計図)を作っただけでは、まだ何も動きません。設計図から実際のモノ(オブジェクト)を作る必要があります。
これを「インスタンス化」と呼びます。
// オブジェクト(実体)を作る
Car myCar = new Car();
// 属性に値を設定
myCar.color = "赤";
myCar.maker = "トヨタ";
// メソッドを呼び出す
myCar.run(); // 「走ります!」と表示される
new Car() という部分が、「設計図から実際の車を1台作る」という意味です。
| 用語 | 意味 | たい焼きで例えると |
|---|---|---|
| クラス | 設計図・型 | たい焼きの金型 |
| オブジェクト | 実際に作られたモノ | 焼き上がったたい焼き |
| インスタンス化 | 設計図からモノを作ること | 型に生地を流して焼くこと |
| new | 「新しく作る」という命令 | 「1個焼いて!」という注文 |
なぜクラスを使うの?3つのメリット
「わざわざクラスを作る意味あるの?」と思うかもしれません。クラスを使うメリットを3つ紹介します。
1. コードの再利用ができる
一度クラスを作れば、何度でもオブジェクトを作れます。同じようなコードを何度も書く必要がなくなるんです。
Car car1 = new Car(); // 1台目
Car car2 = new Car(); // 2台目
Car car3 = new Car(); // 3台目
2. コードが整理される
「車に関するデータと機能」が1つのクラスにまとまるので、コードが見やすくなります。どこに何があるか迷わなくなりますね。
3. 修正が楽になる
クラス(設計図)を修正すれば、そこから作られるすべてのオブジェクトに反映されます。100個のオブジェクトがあっても、修正するのは1箇所だけでOKです。
クラスを使った実践例
もう少し実践的な例を見てみましょう。「ユーザー管理システム」を作るとします。
// ユーザークラスの定義
public class User {
String name; // 名前
String email; // メールアドレス
int age; // 年齢
// 自己紹介するメソッド
void introduce() {
System.out.println("私の名前は" + name + "です。");
System.out.println("年齢は" + age + "歳です。");
}
}
// 使い方
User tanaka = new User();
tanaka.name = "田中太郎";
tanaka.email = "tanaka@example.com";
tanaka.age = 25;
tanaka.introduce();
// 出力:私の名前は田中太郎です。
// 出力:年齢は25歳です。
こうすることで、ユーザーが100人いても1000人いても、同じ「User」クラスから作ることができます。
初心者がつまずきやすいポイント
クラスを学ぶとき、多くの初心者がつまずくポイントを紹介します。
「クラス」と「オブジェクト」を混同する
最初のうちは、この2つがごっちゃになりがちです。
- クラス = 設計図(これ自体は動かない)
- オブジェクト = 実体(実際に使えるもの)
「クラスは設計図、オブジェクトは実物」と、呪文のように覚えておきましょう。
「なぜこんな面倒なことを?」と思う
最初のうちは、クラスを使うメリットが実感しにくいもの。小さなプログラムだと、かえって面倒に感じることもあります。
でも、プログラムが大きくなると、クラスがないと管理が大変になります。「将来の自分を楽にするための仕組み」だと思っておいてください。
まとめ
この記事のポイントを整理します。
| 項目 | 内容 |
|---|---|
| クラスとは | モノを作るための設計図・型 |
| オブジェクトとは | クラスから作られた実体 |
| クラスの構成要素 | 属性(データ)とメソッド(機能) |
| インスタンス化 | new を使ってオブジェクトを作ること |
| メリット | 再利用・整理・修正が楽になる |
クラスはJavaの最も基本的で、最も重要な概念です。最初は難しく感じるかもしれませんが、実際にコードを書いて動かしてみると、少しずつ理解が深まっていきます。
「クラスって何?」から「クラスを使いこなせる」になるまで、一歩ずつ進んでいきましょう!
SKサービスでは、Javaを使った開発現場も多数あります。未経験からでも、実際のプロジェクトで経験を積みながら成長できる環境です。「Javaエンジニアになりたい」という方は、ぜひ一度ご相談ください!