027-オブジェクト指向の基本-コンストラクタのオーバーロード【新人エンジニアが最初に覚えたい100のJava文法
ユーチューブ動画
コンストラクタのオーバーロードについて解説します。
ソースコード
public class BasicClass { public static void main(String[] args) { Product product1 = new Product(); Product product2 = new Product("pencil",100); Product product3 = new Product("eraser",60); } } class Product { private String productName; private int price; public Product(){ this.productName = "none"; this.price = 1000; } public Product(String productName, int price) { this.productName = productName; this.price = price; } }
解説
コンストラクタのオーバーロードについて解説します。
コンストラクタもメソッドと同じようにオーバーロードすることができます。
オーバーロードすることで、引数の数や種類で条件分岐したいときに、コード量の削減が期待できます。
サンプルコードを確認しましょう。
コンストラクタは、クラス名と同じブロックになります。
Productクラスでは引数がないコンストラクタと引数があるコンストラクタが宣言されています。
引数の数が異なるので、オーバーロードが実現されます。
引数がないコンストラクタでは、固定の初期値が設定されています。
引数があるコンストラクタでは、引数の値をメンバ変数に代入しています。
メンバ変数と引数が同じですから、this.〜を必ずつけます。
コンストラクタの呼び出し側を確認しましょう。
インスタンスが3つ作成されています。
最初は引数がないコンストラクタ、2番目と3番目は引数がセットされています。
最初のproduct1インスタンスは、引数がないコンストラクタが呼び出されますから、固定値がセットされてます。
2番目のproduct2インスタンス、3番目のproduct3インスタンスは、引数の値がそれぞれメンバ変数にセットされます。
コンストラクタのオーバーロードによって、呼び出される処理が異なることを読み取ることができたでしょうか?
以上、コンストラクタのオーバーロードについて解説しました。
このサンプルコードをJavaタッチタイプゲームとして遊ぶことができます。
投稿者プロフィール
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。
最新の投稿
- 新人エンジニア研修講師2024年12月24日新人エンジニアの方にプログラムの写経のススメ
- 全ての社員2024年12月24日TOEICでよく出てくる英単語の中でも、意外な意味で使われる60単語
- 新人エンジニア研修講師2024年12月24日なぜ、キーボード操作が重要か? 新人エンジニア向けに解説
- 新人エンジニア研修講師2024年12月20日バイト言葉とは何か? 新人エンジニア向けに解説