‫お帰りなさい｡
‫このビデオでは､ メンバーについてお話したいと思いますので､ ここで新しいクラスを作成し､ それをメンバーと呼ぶことにします｡
‫さて､ このメンバーズクラスでは､ オブジェクト指向プログラミングを行う際に関連するさまざまなタイプのメンバーズをすべて作成していきたいと思います｡
‫例えば､ プライベートフィールドがあるわけです｡
‫そこで､ ここではメンバーをプライベートフィールドと呼び､ プライベート文字列メンバー､ 名前10プライベート文字列の役職のようなものにします｡
‫ですから､ これらはあくまでメンバーの一例です｡
‫つまり､ プライベート・フィールドにもパブリック・フィールドにもなり得るということです｡
‫だから､ 彼らはメンバーフィールドと呼んだことを覚えておいてください｡
‫これはpublic fieldで､ これはpublic int hでしょう｡
‫例えば､ ある会員に給料が支払われることがありますよね｡
‫そういうものばかりです｡
‫つまり､ これらの変数､ フィールド､ グローバル変数はすべて､ このクラスのメンバーです｡
‫そして､ メンバーでもあるプロパティがあるわけです｡
‫例えば､ プロパティを設定したい場合､ ここをプロップしてダブルタップすると､ このプロパティが表示され､
‫それがjob titleという文字列になります｡
‫役職名
‫このように､ プライベート・フィールドだったものを､ 同じ名前で､ しかも大文字のJでプロパティを作成します｡
‫そして､ この中にはゲッターとセッターがあり､ これらも自動的に作成されます｡
‫しかし､ 前回のビデオでご覧いただいたように､ 手動で作成することも可能です｡
‫では､ 実際にやってみましょう｡
‫そこで､ ここでは標準のgetとsetの代わりに､ getで役職名を返し､ 標準のセッターの代わりに､ job title
‫should be setのようなものを使いたいのです｡
‫だから､ 職種は与えられた価値になるんです｡
‫わかりました｡
‫では､ これでセット完了です｡ もう少し見栄えが良くなるように､ きれいにしましょう｡
‫つまり､ これは職種を安全かつ一般的に公開するためのメンバープロパティである｡
‫つまり､ プロパティは大文字で始まり､ 次にメソッドであるメンバがあることを覚えておいてください｡
‫そこで､ 他のクラスから呼び出すことができるパブリックメンバーメソッドを作ってみましょう｡
‫ご存知のように､ publicメソッドは他のクラスから呼び出すことができ､ クラス内のメソッドを彼女のメンバーと呼びます｡
‫だから､ メンバーズクラス｡
‫私たちの場合､ これはmembersというクラスですが､ クラスの名前は何でもいいので､
‫仮にstudentとします｡
‫つまり､ すべての生徒､ 生徒の情報､ 生徒のスキルなどをすべて含んだクラスがあるわけです｡
‫そうすると､ そこにあるメソッドもメンバーになる｡
‫では､ 一例を作ってみましょう｡
‫public void intro juice thing, bool is friend.
‫ここでやりたいことは､ 単純に誰かを紹介し､ もしそれが友人なら､ もっとプライベートな方法で自己紹介をしたい､
‫そんな感じです｡
‫わかりました｡
‫では､ ちょうど違う別のものがあるとしましょう｡
‫ここにもう一つフィールドを追加して､ セロリにします｡
‫だからプライベートとセロリ｡
‫そして今､ もしそれが友人であれば､ 私のセロリのことも伝えたいと思う｡ なぜなら､ 他の誰かには教えられないからだ｡
‫しかし､ そのためにパブリック・メソッドを使うのではなく､ プライベート・メソッドを使うことにします｡
‫だから､ イントロダクション自体の中ではやりたくないんです｡
‫そのために別のメソッドを作り､ プライベートな情報を共有する非公開の空洞を作り､ hi my well
‫actually just call my celeryのように書くつもりです｡
‫私のセロリは､ セロリです｡
‫さて､ 当然ながらセロリを知る必要があり､ あるいはセロリの値があるはずです｡
‫だから､ それを標準値として設定しよう｡
‫だから､ 最低2万円､ それがメンバーの最低セロリになるんです｡
‫そして､ このbool is friendという名前を使って､
‫プライベートな情報を共有するかしないかを決めています｡
‫そうでなければ､ こんなことを書いてしまう｡
‫LS CW こんにちは､ 私の名前はカーリー・ブラケット・ゼロで､ 職種はカーリー・ブラケット・ワン､ それからカーター・ブラケット､
‫2年目です｡
‫そして今､ 私たちはもちろんこれらの情報をすべて必要としています｡
‫1はメンバー名だったんですね｡
‫その後､ 職種も決まり､ Hも決まりました｡
‫友人でなければ､ そのようなことはわからないでしょうから｡
‫しかし､ 友人に何か新しい情報を紹介しようと思ったら､ それは私の給料のようなものになるのでしょう｡
‫まあ､ 普通に街で人に言えないようなプライベートなことを思いついただけなんですけどね｡
‫そして､ さらに別のメンバー､ つまりコンストラクターも持っています｡
‫つまり､ コンストラクタはメンバーでもあるのです｡
‫つまり､ ここでメンバーのコンストラクタを作れば､ これがメンバーになるわけです｡
‫つまり､ コンストラクタはメンバーコンソールの右側の行で､ オブジェクトが作成されたようなものになります､ 非常にシンプルです｡
‫そのため､ メンバーが作成されるたびに､ このオブジェクトを作成させるだけでよいのです｡
‫そして､ ここでやるべきことは､ メンバーの名前､ 職種､ 給料の値がないことです｡
‫実は､ ここでそのサラリーを取り除いて､ メンバーだけで初期化することができるんです｡
‫そこで､ Hを仮に30とし､ メンバー名をLucyとします｡
‫それから､ 給料ですが､ ルーシーは6万ドルとかユーロとか､ 好きな額を稼いでいます｡
‫あとは､ 何があるかな？
‫そこで､ サラリーマン名､ 職種を決めていました｡
‫では､ 彼女の職種は？
‫彼女が開発者だとしましょう｡ どんな開発者であるかは詳しく説明しませんが､
‫これがメンバーのコンストラクタです｡
‫そして､ コンストラクタ自体もこのクラスのメンバです｡
‫最後にFinalまたはDestructorと呼ばれるものがありますが､ これもメンバーです｡ Destructorはこの巻き毛の記号で作成し､
‫次にクラスの名前､ つまりmembersまたは単にmembersとします｡
‫そして､ この最終ユーザーやデストラクタは､ 構造体には定義できません｡
‫クラスの中でしかできないし｡
‫クラスの最終的な敗者は1人しかいない｡
‫つまり､ コンストラクタは複数作成できるが､ デストラクタは1クラスにつき1つしか作成できず､
‫そのファイナルサイザは継承もオーバーロードもできず､ 呼び出すこともできないことがわかりました｡
‫だから､ この特定のクラスのためだけにあるんです｡
‫オブジェクトがスコープ外に出るたびに､ つまりmembersオブジェクトがスコープ外に出るたびに､ このファイルアナライザーが呼び出されるわけです｡
‫ちなみに､ クリーンアップ文のためにあるんです｡
‫だから､ ここでは掃除だけが有効なのです｡
‫そして､ コンソールに何か書いてみましょう｡ メンバーオブジェクトの分解みたいなものです｡
‫つまり､ オブジェクトが閉じられたり､ 削除されたり､ スコープから外れたりすると､ このメソッドやこの最終敗者が実行され､
‫空の最終敗者が発生するのです｡
‫だから､ もしこれが空であるべきなら､ 使うべきではない｡
‫だから､ ここで何か役に立つことがあったときだけ｡
‫ファイルアナライザーは絶対に使うべきで､ そうでなければパフォーマンスを使い果たすだけだからです｡
‫なぜなら､ ファイルアナライザーを含むクラスは､ ファイナライジングキューにエントリーを作成し､
‫アナライザーが呼ばれると､ そのキューを処理するためにガベージコレクターが起動されるからです｡
‫というのも､ 何もしていないキューに何かを追加するだけなので､
‫やはりパフォーマンスが低下してしまうからです｡
‫わかりました｡
‫つまり､ 一般的にはファイルアナライザーやデストラクターがそれにあたります｡
‫というのも､ もしスコープの外に出てしまったら､ つまりこの場合はmainメソッドの外に出てしまったら､
‫プログラムが単に閉じてしまうので､ 何も見ることができないからですね｡
‫では､ メンバーのオブジェクトを作成して､ それを1番と呼ぶことにしましょう｡
‫新メンバーになりそうですね｡
‫そして､ この新メンバーやナンバーワンは､ 単純に私たちルーシーになるわけです｡
‫ですから､ 年齢やメンバー名､ 給与などを設定するコンストラクタはありません｡
‫というのも､ このビデオでは､ メンバーの一般的な考え方と､ 最終的な構成について主に説明しているため､
‫シンプルにしています｡
‫では､ 1番を呼んで､ 彼女に使ってもらいましょう､ 導入法と呼びましょう｡
‫ここで､ 彼女は自己紹介をすることになりますが､ ここではブール値を指定する必要があります｡
‫だから､ よし､ 友達なんだから､ 給料を教えてくれってことなんです｡
‫つまり､ この導入方法がそうなっているからです｡
‫ちなみに､ この個人情報共有メソッドは､ 導入メソッドの中で呼び出すことになります｡
‫つまり､ そのクラスの外部にあるプライベートメソッドを取得するためには､ パブリックメソッドの中でプライベートメソッドを呼び出すしかないのです｡
‫この個人情報の共有は､ プライベートな方法なんですね｡
‫つまり､ アクセス修飾子はprivateですが､ ここにあるpublicメソッドは外部から呼び出すことができます｡ これは､ たとえば私たちのプログラムクラスの内部で呼び出すことができることを意味します｡
‫そして､ ここで､ その共有する個人情報にアクセスしようとすると､ メンバーの共有と個人情報は保護レベルのためにアクセスできませんと表示されます｡
‫だから､ どうしてもアクセスできないんです｡
‫さて､ このメンバーオブジェクトの分解をお見せするために｡
‫完了しました｡
‫そうですね｡
‫この通話は､ スコープから外れる必要があるんだ｡
‫つまり､ 静的なvoid mainを閉じた時点で
‫ですから､ 例えば私の場合､ 18行目まで来るとすぐに､ 最終的なユーザーが呼び出されるわけです｡
‫だから､ メンバー1が壊れるのはその時なんです｡
‫それを実行すると､ ごくごく短い秒数だけ見ることができます｡
‫だから､ 作らせてください｡
‫実は､ 直接閉じるだけなんです｡
‫では､ consoleを書きましょう｡ log, read key in here.
‫だから､ 私たちは私の給料がそうであるように､ 何かを参照してください｡
‫さて､ オブジェクトが作成されました｡
‫ここで言ったように友達だからということで､ 給料を教えてくれる｡
‫本当です｡
‫そして､ 一瞬だけエンターキーを押すと､ そこにテキストがあるのがわかると思います｡
‫実は見えていないんですね｡
‫でも結局､ コンソールキーを押した後､ ここの行に突っ込んで､ コードが実行されるんです｡
‫そこで､ それを確認するために､ ここでdebugを使用する必要があります｡ また､ 修正候補を表示するために､ debugをインポートする必要があります｡
‫すべてのエンターは､ システム診断を使用します｡
‫アグノスティックスはそのデバッグ思考をやるだけなのか？
‫そして今､ ここに明るいものを呼び出すことができる｡
‫そして､ この出力に書き込みたいだけなので､ それだけを呼び出すだけです｡
‫だから､ 脱構築や破壊は､ メンバーのオブジェクトを破壊することだから｡
‫何が起きているのか｡
‫それでは､ もう一度実行してみましょう｡
‫実は鍵がなくても
‫もう大丈夫だから､ そんなのいらないよ｡
‫その後､ 単にプログラムが終了した場合は､ それを実行するだけです｡
‫そして､ ここにメンバーオブジェクトの構造または破壊を見ることができます｡
‫そして実は､ 戻ってきたら､ ちょうど彼らのコンソールキーがあったんです｡
‫だから､ 実行されていないことがわかるのです｡
‫つまり､ この情報は見ていないのですが､ 一瞬見たというエンターキーを押した後だけ､ その情報を見ることができます｡
‫メンバーオブジェクトまたはこのオブジェクトのメンバーの分解を表示しました｡
‫構造体やファイルアナライザが一般的にどのように動作し､ 何をするのか､ そういうことがわかるわけです｡
‫素晴らしい｡
‫さて､ ここまででメンバーの種類はお分かりいただけたと思います｡
‫メンバーについてもう少し知るべきことがありますが､ ドキュメントをチェックすれば大丈夫です｡
‫そして､ メンバーがどのような存在で､ どのような活動をしているのか､ もう少し詳しく見ていきます｡
‫しかし､ ここで見たものは､ 今後､ 使用上の取り扱いのほとんどをカバーするものです｡
‫素晴らしい｡
‫それでは､ 次のビデオでお会いしましょう｡