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

Javaの.classとは?.classの使用方法インスタンス生成の方法とコンストラクタの2つに分けて解説

2021年03月23日
SE
Javaの.classとはどのようなものなのでしょうか。
PM
Javaにおける.classは、クラスリテアルのことです。

Javaの.classとは?


Javaにおける.classは、クラスリテアルのことです。リテアルとは、定数(中身の変わらない変数)という意味です。

実際のコードを見ながら、その使い方を簡単に紹介していきます。クラスは、Java習得に欠かせない要素の1つなので、じっくり理解していきましょう。

そもそもクラスとは?

Javaにおけるクラスとは、コード内のデータや処理をグループごとに分けて管理するためのものです。下記コードでは、HelloWorldクラスの中に処理とデータが入っています。

クラス名は、大文字から始まります。宣言したクラスの{}(ブロック)内がそのクラスの範囲となります。また、Javaでは、//を文冒頭につけるとその文章をコメントにできます。

メソッド

Javaにおけるメソッドとは、処理内容が入った入れ物のことです。public static void main(String[] args) {}は、Javaでソースを作成するときに自動で生成されることが多いメソッドです。public static void は、メソッドを宣言するためのキーワードです。

mainの部分がメソッド名で、小文字から始まります。メソッドはいくつでも作成できますが、mainメソッドは最初に実行するメソッドとなります。(String[] args)は、メソッドのパラメーター(変数)で、処理の対象として受け取るデータのことです。

.classの使用方法

では実際に、.classの使い方を見ていきましょう。新しくCatクラスを作ります。このCatクラスの中身は空とします。

Catクラス

次に、先ほど作成したHelloWorld.class内に、処理やデータを追記して実行してみましょう。実行結果に””Cat””が加わりました。

HelloWorldクラス

実行結果

追記した部分に、初めて.classが出てきました。.(ドット)の前にクラス名を置くと、どのクラスについてのことか指定できます。

クラス名.class.メソッドという構成で使用でき、今回はgetName()というメソッドを使用しています。このメソッドは、Nameをgetします。ここでいうNameはCat.classのクラス名を指すため、str2には”Cat”が入っています。

インスタンス生成の方法

.classの使用方法について紹介しましたが、classを使用せずに、Catクラスのクラス名を取得する方法があります。それが、クラスインスタンスを使用する方法です。

Javaにおけるクラスインスタンスとは、クラスオブジェクト(実体)のことです。実際にコードを見てみましょう。先ほどのHelloWorldクラスに追記します。

HelloWorldクラス

実行結果

Cat cat = new Cat();の部分で、インスタンスを作成しています。ここではCatのcを小文字にしただけのcatを、インスタンス名にしています。インスタンス名は任意で作成できます。

また、今回は、Cat.class.getName();としていた部分をcat.getClass().getName();に変更しました。
cat.getClass().getName();の構成は、インスタンス名.メソッド(Classをgetする).メソッド(Nameをgetする)です。Cat.class.getName();では、Catというクラスの名前をgetするという文でしたが、今回はcatというインスタンスのクラスをgetして、その名前をgetするという文になっています。

コンストラクタ

Javaにおけるコンストラクタとは、インスタンスを生成するときにセットで作成する、値を返さないメソッドのことです。

以下のコードを見てください。今回は、2つのコンストラクタと、””Cat””を表示する変数として新しくstr4を作成しました。実行結果に、Catが1つ増えています。

Catクラス

実行結果

コンストラクタは、クラス名と同じものを設定します。コンストラクタには、デフォルトコンストラクタとコンストラクタの2種類があります。デフォルトコンストラクタは引数のないもので、コンストラクタは引数があるものです。

引数とは、例えば、getName()メソッドのカッコ内の内容のことをいいます。()の中は、(データの型 任意の変数名)という構成で設定できます。
デフォルトコンストラクタは、実は基本的に書く必要がありません。str3でcatインスタンスを使用した際、Catクラスの中は空でも正常に実行できました。デフォルトコンストラクタを明示的に書く必要がある場合は、コンストラクタも作成する場合です。

デフォルトコンストラクタ名、コンストラク名はどちらもクラス名と同じである必要がありますが、インスタンスを作成する場合は、それぞれ別の名前にします。
str3では、デフォルトコンストラクタからインスタンスを生成しました。デフォルトコンストラクタは引数がないものなので、Cat cat1 = new Cat();と書きました。

str4では、コンストラクタを使用します。Catクラス内で、下記のようにコンストラクタを作成しました。

コンストラクタでは値をメインメソッドに返せないので、str4のデータをコンストラクタに渡して、コンストラクタ内の処理で””Cat””と表示させるようにしています。

1つのコンストラクタに1つのインスタンスがセットなので、str4のコンストラク用にcat2インスタンスを生成します。デフォルトコンストラクタ用のインスタンスとは別の名前を設定します。

Cat cat2 = new Cat(str4);

SE
Javaの.classがどのようなものなのかよく理解できました。
PM
Javaの.classをより理解するためにも、実際にソースコードで指定してみましょう。

まとめ

Javaにおける.classは、クラスリテアルのことです。クラス名.class.メソッドという構成で、どのクラスのどのメソッドか指定する際に使用するものでした。また、.classを使わずにクラスの情報を参照する場合は、コンストラクタとインスタンスのセットを作成します。

実際にコードを書きながら、Javaについてより理解を深めていきましょう。


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

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

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

Search

Popular

recommended

Categories

Tags