Javaのクラスとは?クラスの2通りの利用方法や分類方法などについて紹介
- システム
エンジニア - Javaのクラスとはどのようなものなのでしょうか。
- プロジェクト
マネージャー - 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」としているため、他のクラスでインポートして利用が可能なクラスとなります。
1
2
3
4
5
6
|
public class Test{
publice static void main(String[ ]args){
int x =1+1;
System.out.println(x);
}
}
|
クラスには抽象クラス(abstract)とインターフェース(interface)という分類方法もあります。
抽象クラスは複数クラスに共通する枠組みを作成しておいたクラスであり、インターフェースはある機能を実装したい場合のモデルが記されたもので、厳密に言うと「クラスのようなもの」です。
以下は抽象クラスの例です。基本的にクラス名やメソッドに「abstract」を付けます。
1
2
3
4
|
abstract class Sample{
abstract protected String name( );
}
|
以下はインターフェースクラスの記述例です。クラス名の前にのみ「interface」を付けます。
1
2
3
4
5
6
7
|
interface Sample{
String name=“テスト”:
void test1();
void test2();
void test3();
}
|
Javaでのクラスの呼び出し方法
作成しておいたクラス、あるいはAPIのライブラリにあるクラスをプログラム内で呼び出す方法の一つとしてクラス名、クラスのフィールド、クラス内に存在するメソッドを記述する方法があります。
Javaで最初に習うコーディングとして「System.out.println( );」があります。これは、ライブラリに存在するSystemクラスのoutというクラスフィールドで使用可能なメソッドのprintlnを利用し、( )内の内容を出力するプログラムになります。以下に記述例を記載します。
1
2
3
4
5
6
|
public class Test{
public static void main(String[ ]args){
System.out.println(“これはテストです。”);
}
}
|
上記プログラムを実行すると、画面上に「これはテストです。」と表示されます。
本来クラスを利用してプログラミングする場合、インスタンス化(実体化)する必要があります。インスタンス化は「変数名=new クラス名();」で行います。
インスタンス化した後は、参照先クラスのメソッドを利用したい場合に毎回クラス名を記載することなく「変数.メソッド名();」で呼び出し可能となります。
以下はインスタンス化の記述例です。
1
2
3
4
5
6
7
8
|
public class Test{
public static void main(String[ ]args){
Animal a = new Animal();
Animal a = new Animal(“犬”); ←インスタンス化と同時に引数を持たせることも可能
}
}
|
Systemクラスのようにインスタンス化が不要なクラスやメソッドは、「System.out.println(“test”);」のように記述します。「static」という宣言がされているクラスやメソッドがインスタンス不要となります。
また抽象クラスは、extendsで継承してメソッドをオーバーライド(抽象クラスのメソッドを引き継いで再定義し直す)して利用します。インターフェースは、implementsで内容を引き継いで実装していきます。
なおJava言語のルールとして、プログラミングが複雑化することを防ぐために多重継承ができないという点があるのでご注意ください。複数のインターフェースを実装することは可能です。
パッケージについて
JavaのAPIには膨大なクラスライブラリが存在します。そのため「パッケージ」という単位に分けてカテゴライズされています。これによって目的の機能や使用目的に適したクラスライブラリが見つけやすくなっています。
クラスを呼び出す場合も原則としてパッケージ名からの記述が必要となります。Javaの標準パッケージである「java.lang」「java.until」内のクラスやメソッドを利用する場合はパッケージの記述は不要です。
またプログラム内の冒頭にimport文を一度記述することによって、そのプログラム内では毎回パッケージ名を書かなくて良くなります。
以下はimport文の一例です。1列目はtestpackage内のtestclassをインポートする場合の記述、2列目はtestpackage内の全クラスをインポートする場合の記述です。全クラスをインポートする場合は「*」と使います。
1
2
|
import testpackage.testclass;
import 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というワードを使って、例外発生時の処理と発生しなかった時の処理を分ける、いずれの場合も実行される処理等を記述をします。エラーメッセージを表示させる処理もこの例外処理の中に記述されることが多いです。
今回はほんの一部のクラスしか紹介していませんが、他にも多用されるクラスがあります。実用していない状態で覚えることは難しいので、利用する必要が出てきた際に一つ一つ習得することをおすすめします。
- システム
エンジニア - Javaのクラスについて概要などが理解できました。
- プロジェクト
マネージャー - 開発環境を整えるためにも、ぜひJavaのクラスを習得しましょう。
Javaでクラスを使って開発を効率的に進めよう!
Javaのクラスはすでに用意されているものをAPIから呼び出して利用する他、自分で作成することもでき、開発を効率的にすすめられる要素の一つとなります。
Javaのクラスの概要や使い方を覚えると他のオブジェクト指向言語にも応用できて大変便利なので、ぜひ習得してコーディングする際に使いこなしてみてはいかがでしょうか。
FEnetJava・Javaコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。
-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。
Java新着案件New Job
-
官公庁向け業務システム開発/Java/東京都千代田区/【WEB面談可】/テレワーク
月給39万~44万円東京都千代田区(永田町駅) -
販売管理システム開発/Java/東京都中央区/【WEB面談可】/テレワーク
月給49万~55万円東京都中央区(京橋駅) -
生命保険会社向けシステム開発/Java/東京都千代田区/【WEB面談可】/テレワーク
月給42万~48万円東京都千代田区(大手町駅) -
社会保険システムのパッケージ開発/Java/東京都港区/【WEB面談可】/テレワーク
月給42万~48万円東京都港区(新橋駅) -
金融機関向けシステム更改/Java/東京都江東区/【WEB面談可】/テレワーク
月給46万~51万円東京都江東区(豊洲駅) -
大手通信会社者向けWebシステム改修/Java/東京都港区/【WEB面談可】/テレワーク
月給42万~48万円東京都港区(品川駅)