Javaコンストラクタとは?基礎からしっかり理解しよう!
  • facebookページ
  • twitterページ
  • 2019.10.02

    Javaコンストラクタとは?基礎からしっかり理解しよう!

    Java言語で実装を進めていく上で、理解しておくべき機能の1つに「コンストラクタ」の存在が挙げられます。

    コンストラクタは、クラスからインスタンスを生成する際に自動で呼び出される性質をもち、特に処理が記述されていないことも多いため、曖昧な理解となりがちです。

    本記事では、Java言語におけるコンストラクタの使い方を、初心者の方でも理解していただけるよう概要から基礎的な部分を中心に、サンプルコードをまじえながらご紹介していきたいと思います。

    Javaコンストラクタを理解しよう

    Javaに限らずですが、オブジェクト指向のプログラミング言語には「コンストラクタ」という機能が存在します。

    まずコンストラクタの概念についてご紹介していきます。

    コンストラクタとは?

    コンストラクタとは、オブジェクト指向のプログラミングで利用される「クラス」の処理を実行するために「インスタンス」を生成する際に実行される機能を指します。

    実際にJavaでクラスからインスタンスを生成する場合には「new」演算子を利用しますが、この「new」を実行した際に「コンストラクタ」の機能が呼び出される形となります。

    コンストラクタは何のために使うの?

    コンストラクタでは一般的にインスタンスを作成する際に「初期値」を設定するような処理を記述します。

    クラスで利用される値を保存する「メンバ変数」を初期化するための処理が頻繁に記述されます。

    ポテパンダの一言メモ

    コンストラクタで「メンバ変数」を初期化することにより、新たに作成したインスタンスのメンバ変数が必ず指定した値になっていることが保証されます。

    Javaコンストラクタの基本的な使い方を抑えよう

    ここからは、Javaにおけるコンストラクタの基本的な使い方をサンプルコードを交えながらご紹介していきたいと思います。

    コンストラクタの基本構文

    コンストラクタはクラス名と同じ名前のメソッドで定義しておく必要があります。

    記述方法としては下記のサンプルコードのようになります。

    今回のサンプルでは「ClassA」というクラスファイルを定義しており、クラス名と同名のメソッドとなる「ClassA」がコンストラクタです。

    ここで記述した処理がインスタンス生成時に実行されることとなります。

    ポテパンダの一言メモ

    注意すべき点としては、コンストラクタは値を返却することが出来ないため「return」の処理を記述するとエラーとなってしまいます。

    コンストラクタの呼び出し方は?

    コンストラクタはインスタンス生成時に呼び出されるとご紹介しましたが、実際にコードではどのように記述されるのか確認していきましょう。

    上記のようにClassAをインスタンス化するタイミングでコンストラクタが呼び出されます。

    Javaコンストラクタの応用的な使い方を確認しよう

    ここからは更に一歩踏み込んでJavaコンストラクタの応用的な使い方をご紹介したいと思います。

    コンストラクタを使いこなすことで、より綺麗なコードを記述出来ますのでしっかりと学習していきましょう。

    コンストラクタには引数を渡すことが出来る!

    コンストラクタには引数として値を渡すことが可能となっています。

    初期値としてメンバ変数に設定する値を変更したい場合など、様々な場面で利用出来る便利な機能です。

    記述方法としては下記のサンプルコードのようになります。

    サンプルコードでは引数ありのコンストラクタで、引数に指定された値をメンバ変数に設定する処理を記述しています。

    呼び出し元のコードは下記のようになります。

    サンプルコードを実行すると「りんご」がメンバ変数のsample1に設定された状態でインスタンスが作成される結果となります。

    同名のコンストラクタを複数定義することも可能?!

    ここで気付いた方もいらっしゃるかも知れませんが、上記のサンプルで「ClassA」という同じ名前のコンストラクタが2つ記述されていますね。

    実は、Javaでは同名のコンストラクタを複数定義することが可能です。

    引数により同名のメソッドを複数作成することを「オーバーロード」と呼び、コンストラクタでも利用することが可能です。

    ポテパンダの一言メモ

    オーバーロードを利用する際には、「引数の型」または「引数の数」が異なることが条件となります。

    記述方法としては下記のサンプルコードのようになります。

    呼び出し元のコードは下記のようになります。

    ここでは、String型の引数とInteger型の引数が1つずつ定義されたコンストラクタを呼び出してみます。

    1つ目の引数にString型である「りんご」2つ目の引数にInteger型の「1」を定義しています。

    引数の順番を反対にした下記のような記述をした場合には、サンプルコードでは定義されたコンストラクタが存在しないためエラーとなりますので注意してください。

    まとめ

    本記事では、コンストラクタの概念からJavaにおけるコンストラクタの基本的な実装方法までをご紹介してきました。

    近年の開発では、eclipseを筆頭としたIDEの台頭により、コンストラクタが自動で生成されることも多いため、しっかりとコンストラクタの概念を理解していないプログラマーの方も少なからずいらっしゃいます。

    これまでいまいちコンストラクタについて理解していなかった方も、本記事でご紹介した情報をしっかりと理解して、便利で効果的なコンストラクタを使いこなせるようにぜひ挑戦してみてください。


    ポテパンが提供するサービスについて

    本メディア「ポテパンスタイル」を運営する株式会社ポテパンは、エンジニアキャリア領域で複数サービスを提供しています。

    ポテパンフリーランス

    ポテパンフリーランス

    フリーランスエンジニアの方に高単価案件をご紹介しております。弊社ではフリーランス案件を常時300件ほど保有しており、その中からあなたに適した案件をご案内いたします。また、これから独立してフリーランスになる方の無料個別相談も承っております。フリーランスになった後の案件獲得方法やお金面(税金や保険など)についてお答えいたします!フリーエンジニアになりたい方向けのコンテンツも盛りだくさんです。

    ポテパンキャリア

    ポテパンキャリア

    エンジニア職専門の転職エージェントです。ポテパンキャリアでは、技術のわかるエージェントがあなたの転職をサポートします。エージェント自身がエンジニアなので、あなたと同じ目線で仕事内容や今後のキャリアについて一緒に考えることができます。年収800万円以上のハイスペック転職をご希望の方は「ポテパンプロフェッショナル」もご用意しておりますのでご利用下さいませ。

    ポテパンキャンプ

    ポテパンキャンプ

    ポテパンキャンプでは、RubyにてゼロからオリジナルのECサイトを作り上げてる3ヶ月間の実践型カリキュラムを提供しております。すでに本スクールの卒業生は、エンジニア職として様々な企業様に就職しております。なお、本スクールは受講料25万円と他社スクールに比べ格安となっており、またポテパンからご紹介させていただいた企業へ就職が決まった場合は、全額キャッシュバックいたします。



    株式会社ポテパンは、企業とエンジニアの最適なマッチングを追求しています。気になるサービスがあれば、ぜひ覗いてみてください!

    ポテクラバナー ポテプロバナー

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE

    ポテパンおすすめ案件