Javaのクラスとは?書き方や使い方をわかりやすく解説

この記事では「クラスってなに?」という基本から、実際の書き方、使い方までを丁寧に解説します。
実際に手を動かして学べるサンプルコードや演習問題も用意しています。
この記事を読めば、Javaのクラスの仕組みと使い方がしっかりと身につき、将来的に複雑なプログラムを書く力の基礎となる知識が身につきます。
Javaのクラスとは?
Javaにおける「クラス」とは、簡単に言えば「設計図」のようなものです。
例えばゲームの中でキャラクターを作るとき、そのキャラクターの性格や能力、行動のルールをまとめたものが「クラス」です。
クラスは「こういう情報を持っていて、こういうことができるよ」というまとまりをコードで表したものです。
そして実際のプログラムでは、この設計図をもとにして「インスタンス(実体)」をたくさん作って、それらを組み合わせて動かしていきます。
クラスの書き方の基本
Javaでクラスを書くときは、次のような基本構文を使います。
public class クラス名 {
// フィールド(変数)
// メソッド(関数)
}
これは「クラスの型紙」のようなもの。ここに必要な情報や動きを書き足していきます。
クラスの構成要素
フィールド(Field)
クラスが持つ「情報」を表す変数のことです。たとえば「名前」「年齢」など。プログラム内では「オブジェクトの状態」を保存するために使います。
メソッド(Method)
クラスができる「動き」や「処理」を表します。たとえば「歩く」「吠える」などの動き。フィールドの値を使って計算したり、画面に表示したりすることができます。
フィールドとメソッドを組み合わせることで、現実のモノや動きをプログラムで表現できるのです。
クラスを使うメリット
クラスを使うことで、同じ型のデータをまとめて管理したり、似たような処理をひとつにまとめたりできます。
Javaプログラミングでは、すべてのコードがクラスの中に書かれます。それくらい、クラスはJavaの中心的な仕組みです。
クラスのイメージ例
たとえば、「犬(Dog)」というクラスがあったとします。その中には「名前」「年齢」「吠える(bark)」といった情報や動きが書かれます。
そして実際に「ポチ」や「タロウ」といった犬を作るときには、このクラスから「インスタンス(実体)」を作ります。
つまり、クラスはあくまで型紙であり、現実に存在して動くものはインスタンスです。
サンプルコードで学ぼう
サンプルコードで解説していきます。
犬クラスを作ってみる
ここでは「Dog」というクラスを作って、実際にインスタンスを使って動かしてみましょう。
public class Dog {
// フィールド
String name;
int age;
// メソッド
void bark() {
System.out.println(name + "がワンワンと吠えた!");
}
void introduce() {
System.out.println("ぼくの名前は" + name + "、年齢は" + age + "才だよ!");
}
}
// メインクラス
public class Main {
public static void main(String[] args) {
Dog myDog = new Dog();
myDog.name = "ポチ";
myDog.age = 3;
myDog.introduce();
myDog.bark();
}
}
解説
Dog
クラスでは名前と年齢を持ちます(フィールド)。bark()
とintroduce()
という2つのメソッドを使って、吠えたり自己紹介します。Main
クラスの中でnew
を使ってインスタンスを作っています。
コンストラクタとは?
クラスを作るときに「最初にどういう状態にするか」を決められるのが「コンストラクタ(Constructor)」です。
Javaでは、クラスからインスタンスを作るときに自動で呼ばれる特別なメソッドのことをコンストラクタと呼びます。これを使えば、インスタンスを作った瞬間に必要な初期設定ができます。
コンストラクタの例
コンストラクタとは、以下の通り。
public class Dog {
String name;
int age;
// コンストラクタ
Dog(String n, int a) {
name = n;
age = a;
}
void introduce() {
System.out.println("ぼくの名前は" + name + "、年齢は" + age + "才だよ!");
}
}
public class Main {
public static void main(String[] args) {
Dog dog1 = new Dog("タロウ", 5);
dog1.introduce();
}
}
ポイント
Dog(String n, int a)
というのがコンストラクタです。new Dog("タロウ", 5)
のように初期状態をセットできます。- コンストラクタを使うことで、フィールドの初期化ミスを減らせます。
クラスの使い道はいろいろ
クラスはゲームのキャラだけでなく、例えば「電卓」「本」「学校の生徒」など、あらゆるものを表せます。
日常のあらゆる事柄をプログラムに取り込むときには、まず「それをクラスで表せるか?」を考えるのが基本になります。
演習問題にチャレンジしよう
演習問題を用意しましたので、ぜひアウトプットしてみてください。
問題1:猫クラスを作って、鳴かせてみよう
目的: フィールドとメソッドの使い方を覚える
ヒント: 猫の名前や年齢、鳴くメソッドを作ってみましょう
解答例:
public class Cat {
String name;
int age;
void meow() {
System.out.println(name + "がニャーと鳴いた!");
}
}
public class Main {
public static void main(String[] args) {
Cat cat1 = new Cat();
cat1.name = "ミケ";
cat1.age = 2;
cat1.meow();
}
}
問題2:生徒クラスを作って、自己紹介するメソッドを追加しよう
目的: コンストラクタとメソッドの理解を深める
解答例:
public class Student {
String name;
int grade;
Student(String n, int g) {
name = n;
grade = g;
}
void introduce() {
System.out.println("私は" + name + "、" + grade + "年生です。よろしくお願いします!");
}
}
public class Main {
public static void main(String[] args) {
Student s = new Student("さくら", 2);
s.introduce();
}
}
問題3:車クラスを作って、走るメソッドを追加しよう
目的: インスタンスを動かす練習
解答例:
public class Car {
String model;
int speed;
void drive() {
System.out.println(model + "が時速" + speed + "kmで走り出した!");
}
}
public class Main {
public static void main(String[] args) {
Car c = new Car();
c.model = "プリウス";
c.speed = 60;
c.drive();
}
}
よくある質問(FAQ)
以下、よくある質問です。
Q1. クラスとインスタンスの違いは?
A: クラスは設計図、インスタンスはその設計図から作られた「モノ」です。たとえば「自転車」という設計図(クラス)から、実際に作った赤い自転車(インスタンス)を思い浮かべてください。
Q2. クラス名は自由に決めていいの?
A: 基本的には自由ですが、Javaではクラス名の最初の文字は大文字にするのが一般的なルールです。また、単語をつなげるときは「キャメルケース」(例:MyFirstClass)を使いましょう。
Q3. 1つのファイルにクラスはいくつ書ける?
A: 1つのファイルに複数のクラスを書くことはできますが、public
にできるクラスは1つだけです。そしてそのクラス名とファイル名は一致している必要があります。
Q4. クラスはいつ使えばいい?
A: 何かを「情報と動き」で表現したいときや、似たようなデータを整理したいときに使います。現実世界のものや概念をプログラムで扱いたいなら、まずクラスを考えるのが良いアプローチです。
Q5. クラスは絶対に必要?
A: Javaではすべてのコードがクラスの中に書かれるため、クラスの理解は避けて通れません。クラスを知らないと、Javaで動くプログラムを正しく作ることができません。
まとめ
Javaのクラスをしっかり理解することで、より大きなプログラムや複雑なアプリケーションも作れるようになります。
今回紹介したサンプルや演習問題を自分の手で試しながら、楽しんで学んでください。
慣れてきたら、クラス同士を組み合わせたり、継承やポリモーフィズムといった発展的な内容にも挑戦してみましょう!