Javaコラム Javaエンジニアのためのお役立ちコラム

Java

Javaのクラスとは?クラスの2通りの利用方法や分類方法などについて紹介

2021年07月30日
SE
Javaのクラスとはどのようなものなのでしょうか。

PM
Javaのメソッドの集合体です。

Javaのクラスとは?クラスの使い方まで紹介


オブジェクト指向型のプログラミング言語として有名なJavaは、LinuxやWindows等のOSに依存しないで開発できる汎用性の高さを持っていて、多くのシステムで導入されています。

普段生活している中で利用する銀行ATMのシステムやゲーム、スマートフォン向けのアプリや家電等はJavaが利用されている代表的な例です。

オブジェクト指向の言語は一つ一つの意味をなすコーディングの塊をオブジェクト(プログラミムのパーツ)として扱うことからその名が付けられています。

一度作ったオブジェクトは使い切りではなく、他のプログラムでも呼び出して再度同内容を記述することなく利用できるため、コーディングの複雑化を防げます。

またオブジェクトとして分けられているため、メンテナンス時も全てを回収せずに必要なオブジェクトだけを取り出して書き換えることで完了できます。これらの特徴から大規模システムで良く利用される言語となっています。

Javaプログラミングの基本的な構成

Javaの構成要素は今回紹介するクラスを始め、クラスを構成するメソッド、クラス内の変数を定義するフィールドがあります。

順番が前後しますが、分かりやすいようにメソッドから説明します。メソッドは具体的な処理内容が示されており、それだけで意味をなすプログラムです。メソッド内には変数、引数、戻り値、演算処理等が含まれています。

クラスは、メソッドの集合体です。基本的にはそのクラスを特徴づける関連性のあるメソッドが複数含まれています。

最後にフィールドですが、そのクラス内でどういったデータを扱うかということを定義した初期値のようなものです。変数の定義とほぼ同義で、データの型や修飾子を指定します。

Javaはクラス、メソッド、フィールドという大枠の要素から成っていて、その中にはさらに引数、戻り値、修飾子といった細かい要素が存在しています。今回はその中のクラスに焦点を絞って紹介していきます。

クラスの2通りの利用方法

Javaのクラスの利用方法は大きく分けて2つあります。一つは自分でクラスを作成してオブジェクトとして保存しておき、必要に応じて呼び出す方法です。もう一つはJavaのAPIに用意されたライブラリの中から適したクラスを呼び出す方法です。

Javaは1990年代から利用されていて、プログラミング言語の中で歴史があるためAPIには非常に多くのクラスがすでに用意されています。

JavaのAPIは開発元によってインターネット上で公開されているので「Java API」等のキーワードで探し出せます。各クラスを見ると概要や詳細な利用方法が記されていて、誰でも利用できます。

自分でクラスを作る場合、クラス名は命名規則に従った範囲で自由に決められます。そのクラスで行いたい処理等を記述し、パソコン内に保存しておきます。

コンパイルを実施することで、拡張子が「.class」のクラスファイルが出来上がります。

様々なクラスの分類について

Javaのクラスには様々な分類方法があります。一つは修飾子による違いです。Javaには修飾子というものが存在し、修飾子を使い分けることでシステム上必要のないアクセスを制御しセキュリティを堅牢にします。

修飾子にはpublic、protected、privateがあり、publicからprivateにかけて公開範囲が狭まります。クラスに関してもこの修飾子によってアクセス範囲を設定できます。

なおprotectedは特殊で、クラスの作成時に利用することはありません。あるクラスを継承する際に利用される修飾子です。

以下は修飾子を使ったコードの例です。例は「public」としているため、他のクラスでインポートして利用が可能なクラスとなります。

クラスには抽象クラス(abstract)とインターフェース(interface)という分類方法もあります。

抽象クラスは複数クラスに共通する枠組みを作成しておいたクラスであり、インターフェースはある機能を実装したい場合のモデルが記されたもので、厳密に言うと「クラスのようなもの」です。

以下は抽象クラスの例です。基本的にクラス名やメソッドに「abstract」を付けます。

以下はインターフェースクラスの記述例です。クラス名の前にのみ「interface」を付けます。

Javaでのクラスの呼び出し方法

作成しておいたクラス、あるいはAPIのライブラリにあるクラスをプログラム内で呼び出す方法の一つとしてクラス名、クラスのフィールド、クラス内に存在するメソッドを記述する方法があります。

Javaで最初に習うコーディングとして「System.out.println( );」があります。これは、ライブラリに存在するSystemクラスのoutというクラスフィールドで使用可能なメソッドのprintlnを利用し、( )内の内容を出力するプログラムになります。以下に記述例を記載します。

上記プログラムを実行すると、画面上に「これはテストです。」と表示されます。
本来クラスを利用してプログラミングする場合、インスタンス化(実体化)する必要があります。インスタンス化は「変数名=new クラス名();」で行います。

インスタンス化した後は、参照先クラスのメソッドを利用したい場合に毎回クラス名を記載することなく「変数.メソッド名();」で呼び出し可能となります。

以下はインスタンス化の記述例です。

Systemクラスのようにインスタンス化が不要なクラスやメソッドは、「System.out.println(“test”);」のように記述します。「static」という宣言がされているクラスやメソッドがインスタンス不要となります。

また抽象クラスは、extendsで継承してメソッドをオーバーライド(抽象クラスのメソッドを引き継いで再定義し直す)して利用します。インターフェースは、implementsで内容を引き継いで実装していきます。

なおJava言語のルールとして、プログラミングが複雑化することを防ぐために多重継承ができないという点があるのでご注意ください。複数のインターフェースを実装することは可能です。

パッケージについて

JavaのAPIには膨大なクラスライブラリが存在します。そのため「パッケージ」という単位に分けてカテゴライズされています。これによって目的の機能や使用目的に適したクラスライブラリが見つけやすくなっています。

クラスを呼び出す場合も原則としてパッケージ名からの記述が必要となります。Javaの標準パッケージである「java.lang」「java.until」内のクラスやメソッドを利用する場合はパッケージの記述は不要です。

またプログラム内の冒頭にimport文を一度記述することによって、そのプログラム内では毎回パッケージ名を書かなくて良くなります。

以下はimport文の一例です。1列目はtestpackage内のtestclassをインポートする場合の記述、2列目はtestpackage内の全クラスをインポートする場合の記述です。全クラスをインポートする場合は「*」と使います。

良く使われる便利なクラスについて紹介

Javaには利用頻度の多い便利なクラスがいくつかあります。「パッケージ」の項目で紹介したインポートが不要な「java.lang」や「java.util」の中に特に多くあるため、この中に含まれた代表的なクラスを紹介していきます。

一つ目はStringクラスです。Stringは文字列を扱う場合の型として存在していますが、Javaのクラスとして存在しています。単純にstring型を持たせるだけではなく、文字列同士の比較や、lengthメソッドを使って文字列の長さを取得する等ができます。

2つ目はArraysやArrayListといった配列を扱う場合に便利なクラスです。配列とは同じ型の複数データを一つの変数として扱える仕組みです。

文字を扱うStringやchar、数字を扱うint、longといった型にはいずれも単体のデータしか持たせられません。対して配列のクラスには、例えば「1、2、3、4、5」という数字データを演算することなくそのまま保持させられます。

最後に紹介するのはExceptionクラスです。Exceptionはプログラム内で定めた処理以外の例外が発生した場合にどのような処理をするかを記述する際に利用するクラスです。

try、catchというワードを使って、例外発生時の処理と発生しなかった時の処理を分ける、いずれの場合も実行される処理等を記述をします。エラーメッセージを表示させる処理もこの例外処理の中に記述されることが多いです。

今回はほんの一部のクラスしか紹介していませんが、他にも多用されるクラスがあります。実用していない状態で覚えることは難しいので、利用する必要が出てきた際に一つ一つ習得することをおすすめします。

SE
Javaのクラスについて概要などが理解できました。

PM
開発環境を整えるためにも、ぜひJavaのクラスを習得しましょう。

Javaでクラスを使って開発を効率的に進めよう!

Javaのクラスはすでに用意されているものをAPIから呼び出して利用する他、自分で作成することもでき、開発を効率的にすすめられる要素の一つとなります。

Javaのクラスの概要や使い方を覚えると他のオブジェクト指向言語にも応用できて大変便利なので、ぜひ習得してコーディングする際に使いこなしてみてはいかがでしょうか。


Javaでのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)

Search

Popular

recommended

Categories

Tags