【Java入門】クラスの使い方総まとめ


Javaのクラスって何?
クラスの使い方を知りたい

Javaではさまざまなクラスの使い方ができます。

ここではクラスの使い方の基本から、クラスの継承、final修飾子の指定、内部クラスなど応用的な使い方まで詳しく解説していきます。

※この記事ではJavaの「バージョン8」で動作確認しました。

Javaのクラス

そもそもクラスとは

クラスとは、プログラムを実行するための処理をまとめたオブジェクトで、クラスの処理の中にはメンバ変数や処理を実行するためのメソッドがあります。

ちなみに、メンバ変数とはクラス内で使用する変数のことで、メソッドとはメンバ変数などを使って行う処理をひと塊にまとめたものです。

クラスは以下のように記述します。

インスタンスとオブジェクト

Javaのようなオブジェクト指向のプログラミング言語では、処理をまとめたクラスを実行するためには、そのクラスのオブジェクトを生成する必要があります。

そして、生成したクラスのオブジェクトから、そのクラスのメンバ変数を参照したり、メソッドを呼び出して使用します。クラスの中のメソッドを呼び出すためには、以下のように記述します。

クラスのオブジェクトを生成する方法は変数を宣言する方法と似ていて、クラス名のあとにオブジェクト名を記述します。オブジェクトにはnew演算子を使って生成するインスタンスを格納します。

なお、クラスのオブジェクトは異なるオブジェクト名でいくつでも生成することが可能です。

クラスの基本

基本的な使い方

ここではクラスの基本的な使い方を確認するために、以下の内容のプログラムを作成します。

  • 参照するクラスのオブジェクト変数を生成
  • そのクラスのメンバ変数の参照
  • メソッドの呼出し
  • 取得した値を出力

「TestClass.java」「Main.java」ファイルを作成し、それぞれ以下のプログラムを記述します。

ファイルを保存したら、プログラムのコンパイル、実行してみましょう。

コンパイルが成功すると、Main.classとTestClass.classが作られます。実行するには、コマンドラインで以下のようにmainメソッドが存在するクラス名を指定して実行するとプログラムが処理されます。

このようにクラスのオブジェクトを生成して、そのクラスのメンバやメソッドを参照するのが、クラスの基本的な使い方となります。

引数ありのコンストラクタ

クラスにはインスタンス生成の際に、引数を使って値を渡すことができます。インスタンス生成時にクラスに値を渡すためには、引数ありのコンストラクタが必要となります。コンストラクタは以下のように記述します。

サンプルでは、引数ありのコンストラクタTestClassを宣言・定義しています。コンストラクタの名前はクラス名と同じにする必要があります。クラスのインスタンスを生成する際に引数を指定して、TestClassクラスのメンバ変数に値を渡しています。

コンストラクタの使い方については、こちらで詳しく解説していますので、ぜひ参考にしてくださいね。

【Java入門】コンストラクタの使い方総まとめ(クラス/インスタンス)
更新日 : 2019年4月8日

staticなメンバをクラス名から呼び出す

先ほど、クラスのメンバ変数やメソッドを呼び出すためにはオブジェクトを生成する必要があると説明しました。しかし、オブジェクトを生成しないでメンバ変数やメソッドを呼び出す方法があります。

メンバ変数やメソッドにstatic修飾子を付けて宣言するとクラス名から呼び出すことができます。

サンプルでは、TestClassクラスのメンバ変数およびメソッドにstatic修飾子を付けています。このメンバ変数やメソッドは、オブジェクトではなくクラス名から呼び出しています。

static修飾子が付いたメンバ変数やメソッドの使い方については、こちらで詳しく説明していますので参考にしてくださいね。

【Java入門】static変数(クラス変数)の使い方
更新日 : 2019年4月4日
【Java入門】staticメソッドの書き方・使い方まとめ
更新日 : 2019年5月28日

クラスの応用

クラスの継承

クラスの継承とは、クラスが保持しているメンバやメソッドの内容を他のクラスで継承することを指します。

継承元のクラスのことを「スーパークラス」「親クラス」などと呼び、継承したクラスのことを「サブクラス」「子クラス」などと呼びます。親クラスを継承するためにはextendsを指定します。

クラスの継承方法の詳細については、以下の記事で詳しく解説しています!

今からでも遅くない!クラスの継承(extends)を学ぼう!【Java】
更新日 : 2018年10月26日

内部クラス

内部クラス(インナークラス)とは、クラスの中にクラスを作成する記述方法です。通常Javaは1ファイル1クラスですが、簡単な処理でファイルをわざわざ分けたくない場合に使用します。内部クラスは以下のように記述します。

内部クラスの詳細な使い方については、以下の記事で詳しく解説しています!

【Java】内部クラス(インナークラス)の使い方(static class)
更新日 : 2019年4月16日

final class

クラスにfinal修飾子を指定すると、そのクラスは子クラスで継承することはできません。クラスをfinalで指定するには、以下のように記述します。

クラスにfinal修飾子を使用する目的としては、そのクラスのメンバやメソッドの内容を不用意に変更されたくない場合に、親クラスの安全性を保つために使用します。クラスでfinal修飾子を使用する詳細については、以下の記事で詳しく解説しています!

【Java入門】final classの使い方
更新日 : 2017年6月13日

ラッパークラス

ラッパークラスとは、int型などの基本データ型に用意されているクラスです。基本データ型をクラスのように扱えて、インスタンス化することも可能です。

int型のラッパークラスはInteger、float型はFloatクラスになります。ラッパークラスは、以下のように定義します。

ラッパークラスの詳細については、以下の記事で詳しく解説しています!

【Java入門】Integerとラッパークラスの基礎の基礎をわかりやすく解説!
更新日 : 2018年10月4日

抽象クラス

抽象クラスとは、実装を持たないシグネチャ(メソッド名、引数の型、引数の数)と戻り値の型のみを実装したメソッドを1つ以上保持するクラスを指します。

抽象クラスは「インスタンス化できない」「抽象メソッドをすべてオーバーライドする必要がある」などのルールがあります。そんな抽象クラスの詳しい使い方については、以下の記事で詳しく解説しています!

【納得Java】抽象クラス(abstract)を使うメリット
更新日 : 2019年4月8日

まとめ

ここでは、

  • クラスの基本的な使い方からクラスを継承する方法
  • 内部クラスの使い方
  • final修飾子の指定
  • ラッパークラス、抽象クラスの使い方

など、Javaにおけるさまざまなクラスの使い方について紹介しました。Javaを扱う上で、クラスは基本的な処理となりますので、ぜひ覚えておきましょう。もし、クラスの詳しい使い方を忘れてしまったら、この記事を思い出してくださいね。

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

侍テック編集部

侍テック編集部

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説