Javaオブジェクト指向プログラミング講座

引数を持つコンストラクタ

全333コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
引数を持つコンストラクタの使用方法を解説します。
講師:
07:26

字幕

このレッスンでは引数を持つコンストラクタの使用方法を解説します。コンストラクタオーバーロード、コンストラクタもメソッドのように多重定義ができます。コンストラクタ、メソッドの1種但し戻り値は持ちません。引数がないもの、引数が1つ、引数が2つとあるいは引数が1つでもそこの型が違えばオーバーロードすることができます。Java で記述してみます。Kokyaku というコンストラクタ引数として int id0顧客番号ですね、それから顧客名これをパラメーターに渡してこのコンストラクタの中で顧客番号、顧客名を設定することができます。例えば 今まではデフォルトコンストラクタ使ってる場合はKokyaku K としてデフォルトコンストラクタこう呼んでいました。この時中身、何も値入っていません。後から k.id顧客番号と顧客名を設定しています。これをパラ―メーター付きコンストラクタを使うと、このコンストラクタを呼ぶ時にここに顧客番号、顧客名を設定することができます。そうすると、こういう作業は不要になります。コンストラクタ作成の注意点コンストラクタを作成するとデフォルトコンストラクタは無効になります。これデフォルトコンストラクタ呼んでいるつもりなんですけど一旦、パラメーター付きのコンストラクタを作るとこれも無効になるんですね。 だから、これコンパイルエラーになります。引数を持つコンストラクタを作成した時は引数を持たないコンストラクタを追加します。つまり、これ引き続きコンストラクタを作った場合はこれ何もないただコンストラクタ、何もないこれ追加する必要があるんですね。デフォルトコンストラクタもなくなってしまってるのでこれ意味がないみたいですけどこれを追加する必要があります。これでコンパイルエラーはでません。this キーワード、そのクラスのインスタンスを指すキーワードです。引数付きコンストラクタです。ここの id はフィールドの idこちらの id0 はこのパラメーターの id0 です。これは全然問題ないでわけです。ここに this と付いてます。this と付けるとそれはそのフィールドの id を指します。上と下、全く同じ意味でこうやる必要、特にありません。今度、id = idname = name同じ名前になってます。どういう風に判定するかというとここに id とありますね。そうするとこの id 全部ローカル変数の id になるんです。つまりフィールドの id じゃないんですね。まずこちらが優先されますのでこれ全く意味がないコーディングです。 これはよくありません。こういう場合に this.id とつけるとこちらが左辺はフィールドの id右辺がローカル変数の、つまりパラメーターの id なのでこれは正しいわけです。同じ名前にする場合はこうthis を付ける。プログラムを作って動かしてみます。NetBeans 開いてプロジェクトの追加「新規プロジェクト」です。「Java」 「Java アプリケーション」これで OK です。プロジェクト名をconstructor とします。プロジェクトの場所は、先ほどと同じデスクトップの Java/ch03 です。それでメインクラスですけど「メイン・クラス」は Main としておきます。それで終了です。Class Kokyaku を作成します。Class Kokyaku の中にまたフィールドを作ります。顧客番号と顧客名です。次に、引数付きのコンストラクタを作ります。id0 を id にコピーしname0 を name にコピーします。それでコンストラクタを作ったのでデフォルトコンストラクタなくなってしまいますから1つデフォルトコンストラクタの代わりのものを作っておきます。メソッドは同じです。個顧客番号と顧客名を表示します。 次は main の、メソッド main の所にプログラムを書いていきます。Kokyaku k0 = newここでパラメーター付きのコンストラクタですね。顧客番号と顧客名を入れます。もう1人作っておきましょう。2つオブジェクトを作りました。これをプリントで表示してみます。まず k0 をプリント同じく k1 をプリントします。これで実行をかけてみます。ここの三角ですね。すると、2人分の顧客番号と名前がでてきました。ここで this を使ってみましょう。ここの id0 と name ですね。id0、これを id にしてname0 を name にします。ここの id0 も idこれで実行すると、どうなるかと言いますとやってみましょう。名前が null になってますね。これ、結局フィールドに値が代入できてないです。ここに this と書いてみましょう。ちなみに、まず id だけthis 付けてみました。これで実行をかけてみます。顧客番号だけ入りました。こちらにも this を付けてみます。実行かけてみます。無事できました。このレッスンでは引数を持つコンストラクタの使用方法を解説しました。

Javaオブジェクト指向プログラミング講座

このコースではオブジェクト指向プログラミングの3大特徴である「カプセル化」「継承」「多態性」を、UMLモデルとJavaプログラムを対比しながら解説します。「カプセル化」ではコンストラクタや可視性、「継承」ではUML汎化関係とJavaの関係、「多態性」では継承およびインタフェースによるプログラミング方法などを説明します。

3時間23分 (36 ビデオ)
現在、カスタマーレビューはありません…
 
ソフトウェア・トピック
価格: 2,990
発売日:2016年09月27日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。