‫お帰りなさい｡
‫前回のビデオでは､ クラスを作成する方法を説明しました｡
‫そして､ このビデオでは､ コンストラクタについて見ていきます｡
‫先ほどお話したように､ 本当に必要なコードの量を改善することができるので､ それほど多くのコードは必要ないのです｡
‫例えば､ ここに書いてあることは､ かなり減らせるものです｡
‫そのため､ これらの行を減らすか､ あるいは各オブジェクトの2行を削除して､ 初期化するときに人間の中に入れることもできます｡
‫だから､ そうしよう｡
‫ここでは､ コンストラクタと呼ばれる新しいメソッドを作ってみましょう｡
‫メソッドに近いものがありますね｡
‫メソッドというほどのものではありません｡
‫メンバーでもあるコンストラクタですよね？
‫では､ コンストラクタを作りましょう｡ これはpublicで､ クラスそのものと同じ名前です｡
‫しかし､ ここでわかるように､ voidも文字列も戻り値もないのです｡
‫必要ないんです｡
‫アクセス修飾子が必要なだけです｡
‫そしてこの場合､ それは一般市民です｡
‫そして､ 人間が必要です｡
‫そうでなければ､ このコンストラクタを使用することはできませんので､ publicを使用すべきです｡
‫だから､ ここでパブリックを使うのは本当に大事なことなんです｡
‫そしてここに､ このクラスのオブジェクトを作成するたびに必要なパラメータを追加することができます｡
‫そこで､ 文字列のファーストネームと文字列のラストネームを持ちたいとします｡
‫ですから､ 誰かが人間を作るたびに､ この情報を提供する必要があるのです｡
‫ちょっと見てみましょう｡ コンストラクタがあることを理解するとすぐに､ 引数が足りないということで文句を言っています｡
‫そのため､ 必要な形式パラメータである人間のファーストネームに対応する引数が与えられない｡
‫だから､ ここには2つの文字列が必要なのです｡
‫そして､ 1つ目は名前､ ファーストネーム､ 2つ目はラストネームになります｡
‫しかし､ それだけでは十分ではありません｡
‫というのも､ ご存知のように､ この人間はメンバー変数を持っていて､ 例えば､ ファーストネームとラストネームを､
‫オブジェクトを作成するたびに変更したいからです｡
‫そして､ ファーストネームは名字と同じと言うことでそれを実現しています｡
‫というのも､ 「いやいや､ あなたが何をしたいのかわからないんだ」と言われてしまうからです｡
‫を割り当てることができます｡
‫同じものを割り当ててもダメなんです｡
‫つまり､ 同じ変数から同じ変数へ｡
‫では､ ここで何ができるかというと､ 2種類のアプローチがあります｡
‫つまり､ この変数名を例えば私のファーストネームに変更し､ グローバルファーストネームを私のファーストネームにするというだけのことです｡
‫それも一つの方法です｡
‫よし､ これで動くようになった｡
‫または､ thisキーワードを使用することもできます｡
‫つまり､ このドットのラストネームはラストネームとイコールなのです｡
‫今､ 突然動作するようになりました｡
‫なぜ､ そうなるのでしょうか？
‫まあ､ このラストネームは､ このオブジェクトのラストネームを持ちたいということで､ このラストネームになるわけですから｡
‫だから､ ローカル変数ではなくメンバ変数｡
‫つまり､ この文字列､ 私のファーストネーム､ 文字列ラストネームはローカル変数です｡
‫かなり､ パラメータになっていますね｡
‫しかし､ それらはあたかもローカル変数のようにうまく利用されています｡
‫そのため､ このメソッドやコンストラクタの外では､ 誰もこのことを知ることはありません｡
‫例えば､ 私のファーストネームの変数､ それはここでしか知られていません｡
‫だから今は､ この名字は大丈夫と言うだけにしています｡
‫だから､ モノから出たものは､ 人間が生まれるたびに与えられる価値であるべきなんです｡
‫そのため､ このコンストラクタが呼ばれるたびに
‫つまり､ コンストラクタは､ オブジェクトが作成されるたびに呼び出されるメソッドのようなものです｡
‫つまり､ この場合､ この人間クラスがデータ型として使われるときはいつでも､ コンストラクタを使うことになり､ コンストラクタを呼び出すことになるのです｡
‫ご覧のように､ この2種類の方法があるわけです｡
‫では､ 次にプログラムに戻ってみましょう｡
‫そして､ ご覧のように､ ここに値を追加するだけです｡
‫だからCCと､ ワグナーと､ ここにある他のものは全部捨ててしまおう｡
‫今はCCしかいないわけですが､ CCは自己紹介をするんです｡
‫これで､ コード全体を制限したり､ コード全体を1行だけ使用したりすることができるようになりましたね｡
‫以前は4回線､ 3回線あったのに､ 今はこの1回線だけです｡
‫だから､ 同じことを言うんです｡
‫だからハイ｡
‫CCワグナーです｡
‫だから､ ただ｡
‫姓を手渡し､ 名を手渡す｡
‫だから､ humanにカーソルを合わせると､ それが何を必要としているのかがわかるようになっています｡
‫私の名前と姓の文字列が必要です｡
‫そして､ 人間の階級に目を向けると､ まさにここがそうなのです｡
‫これで､ コンストラクタの使い方がわかりましたね｡
‫そして､ 実際にファーストネームに変更し､ これも使うつもりです｡
‫だから､ 私は常にフィールドを使っているか､ メンバー変数（グローバル変数）を使っているかを把握しているんだ｡
‫ちなみに､ 今はもうpublicを使う必要がないので､ privateにすることができます｡
‫両方の変数を非公開にすることができます｡
‫さて､ まだ動作していることを確認するために､ もう一度コードを実行して見ましょう｡
‫こんにちは､ 病み上がりです､ ワグナーです｡
‫だから､ 今はもうここから実際にその変数にアクセスすることはないんだ｡
‫私は単にコンストラクタを作ったり､ 人間のオブジェクトを作ったりして､ この情報を渡してコンストラクタを配信したり､
‫コンストラクタを呼び出したりしています｡
‫そうしないと､ オブジェクト全体が作成されないからです｡
‫見ての通り､ エラーになりますね｡
‫だから今ここで､ それはコードが好きではないのです｡
‫ああ､ 何かが足りない､ コンストラクタの情報が足りない､ と言うのです｡
‫だから､ これは論外です｡
‫必須のフォームパラメータである姓に対応する引数が与えられていない｡
‫わかりました｡
‫だから､ また苗字だけでいいんです｡
‫そして､ これは何だったのか？
‫彼女の名前は......ワグネルと呼ぶことにしよう｡
‫それで今度は相手の男と結婚して､ 実はワーグナーだったというわけだ｡
‫そうですね｡
‫なるほど｡
‫では､ コンストラクタと変数に戻りますが､ ここで少しチャレンジしてみましょう｡
‫そこで課題です｡
‫humanに2つのメンバ変数を追加する｡
‫ひとつは､ 瞳の色と呼ばれるもの｡
‫もう1つのH．
‫ここで正しいデータ型を使用し､ コンストラクタを調整して､ 人間のオブジェクトを作成するときに4つの値すべてを使用するようにします｡
‫そこで､ ファーストネーム､ ラストネーム､ 目の色､ 年齢を使い､ 人間タイプのオブジェクトを2つ作成する必要があります｡
‫そしてもちろん､ 私たちのプログラムクラスの中で作成する必要があります｡
‫わかりました｡
‫だから､ ビデオを投稿して､ それをやってみてください｡
‫わかりました｡
‫ぜひ挑戦してほしいですね｡
‫それではまず､ publicな文字列I､ 実際にはprivateな文字列Iの色､ そしてint型のprivateなHを作ってみましょう｡
‫そして､ 今度はコンストラクタを調整しましょう｡
‫そこで､ 文字列I colorを追加し､ int Hを追加して､ コンストラクタの内容も調整するだけです｡
‫だから､ Iカラーはカラーに､ このHはHになるんです｡
‫では､ ここに戻って､ オブジェクトを作成してみましょう｡
‫実は2つのオブジェクトはとても人間的なものなのです｡
‫私の場合､ Dennis is a new humanとなり､ ファーストネームを入力することになります｡
‫ラストネーム
‫そして､ ここにあるように､ A． J. は､ 入力に必要なものを教えてくれます｡
‫だから､ 名字､ 名前､ 目の色H｡
‫よし､ じゃあそうしよう｡
‫瞳の色は緑､ Hは整数です｡
‫だから､ 私の場合は29を入力するだけです｡
‫では､ デニスから自己紹介をお願いします｡
‫そして､ 自分自身を紹介することは､ まだ調整されていないことです｡
‫だから､ それを実行しても､ 目の色や年齢といった素晴らしい情報はまだ追加されないんです｡
‫では､ 自己紹介に戻り､ 私は○○歳､ △△歳ですと付け加えると､ これが私たちの→私の目の色が→これが私たちの3､
‫つまり4つ目の値になりますね｡
‫だから､ 私は色とHだから､ ここで変数を作った順番ではなく､ 本文で使った順番で追加していくんです｡
‫そこで今､ もう一度コードを実行すると､ こうなります｡
‫こんにちは､ 私はデニス・パネッタ､ 29歳です｡
‫私の目の色はグリーンです｡
‫非常に有益な情報です｡
‫ありがとうございました｡
‫では､ この2人目の人間を作りましょう｡ 名前は「アマリア」､ つまり私の娘とします｡
‫彼女は新しい人間で､ かなり新しい｡
‫アマリア､ 瞳の色はまだ青いのが新しい｡
‫両親の目が茶色でない場合､ 赤ちゃんは青い目になる傾向があります｡
‫そして今､ 彼女は何歳なのか？
‫彼女は1歳です｡
‫そして､ 天谷さん､ さあ､ 自己紹介をお願いします｡
‫残念ながら､ 彼女はコミュニケーション能力が足りないのか､ 少なくともこの種の情報については､ まだ話す術を知らない｡
‫そのため､ 私たちは1歳を終えるまで高い位置にいると私は考えています｡
‫だから､ それを調整することだってできるんです｡
‫だから､ if文を作って自己紹介をすればいいんです｡
‫だから､ もし誰かが､ そうそう､ だから2年以下､ だから実際には1年と0年､ あるいは0年だとうまくいくかどうかわからないけど､
‫1年の場合は､ よし､ 年じゃないけど､ ここに来るぞと言うことができる｡
‫あのさぁ...｡
‫実はそう心がけているんです｡
‫わかりました｡
‫ぜひ試してみてください｡
‫そこで､ ここではちょっとだけif文を使ってみます｡
‫だから､ 年齢が1と同じなら､ 他のことをすればいいのです｡
‫そして､ それ以外はそうしてください｡
‫だから年齢が､ あるいは実際に1歳なのかどうか｡
‫そして､ これ以外にも｡
‫わかりました｡
‫そして､ 今は大丈夫なはずです｡
‫そこで､ 私たちは
‫こんにちは､ 天谷です｡
‫そして1歳｡
‫私のカラーはブルーです｡
‫素晴らしい｡
‫だから､ なんとかやってほしいですね｡
‫そして､ コンストラクタの使い方はおわかりいただけたと思います｡
‫次のビデオではコンストラクタを複数使用します｡
‫つまり､ 同じクラス内に複数のコンストラクタを作成します｡
‫また､ 今後､ 複数の異なるコンストラクタを持つクラスを多数使用することになります｡
‫それでは､ 次のビデオでお会いしましょう｡