I appreciate your feedback. The basic structure of programs is indeed similar across different programming languages. I aim to create English-language videos in the future to reach a wider audience globally.
注意深くご視聴いただきありがとうございます。 Cat mike = new Mike(); もMike mike = new Mike(); もどちらも書けて部分的には両方とも間違いではありません。 「間違い」というより「適切」なのはどちらかという感じで、後続のコードをどういう風に扱うかという意識によるもので、ケーズバイケースになります。 Cat mike = new Mike(); の場合は、Mikeをネコとして大きな粒度としてしか扱わないという意識と後続のコードになり、 Mike mike = new Mike(); の場合は、MikeをMikeを固有のネコのミケとして、ミケに備わる固有のメソッドまでも使い分けるという意識と後続のコードになります。 private修飾詞は、全てpublic修飾詞にしてしまっても、動きます。だからprivate修飾詞は要らないという発想ではJavaはないです。 先を見通して、できる限り無駄なアクセスを排除するのが堅牢という考えですが、そういう類の、「間違い」というより「適切」なのはどちらかの考え方になります。 実践的には、List list = new ArrayList(); としても ArrayList list = new ArrayList();問題なく、 ArrayList list = new ArrayList();で書くほうが少し多いかもしれません。 継承関係にあるクラスは、Cat mike = new Mike();という書き方も併せて知っておいていただきたいという向きで、示したという感じです。 こういう書き方もあると知っていただきたい意向で作った他の動画が、 【Java プログラミング実践】「すごろく」を敢えてオブジェクト指向にするとどうなるのか?(製造編) ua-cam.com/video/IIKc9_tuupY/v-deo.html (39:56以降) になります。 Masu nomal = new Nomal(); Masu bridge = new BNomal(); Masu hole = new Hole(); Masu snake = new Snake(); この場合は、Nomal・Nomal・Hole・Snakeともにすごろくのマスの一種であるだけの意識でインスタンスを扱うパターンになります。 どちらかというと、こういう書き方を知っておいて、今後のプロジェクトで戸惑うことがないようにという配慮でした。 ご質問ありがとうございました。
スライドの色やデザイン、イラストが可愛いしので、スクショでnoteしてアルバムにまとめても素敵にまとまります。
女性も視野に入れてデザインした甲斐がありました!!ありがとうございます。🤩
面白い動画でわかりやすいです。ありがとうございます。
ありがとうございます。
If I have a teacher teach C# like that I think I will learn it better.
I appreciate your feedback. The basic structure of programs is indeed similar across different programming languages. I aim to create English-language videos in the future to reach a wider audience globally.
エフェクティブJavaの「継承よりもコンポジションを検討する」の主張どう思いますか?実際の業務だとあまりAnimal, Cat, Dog, みたいな業務知識の系統的関係はあまりないように思うのと、疎結合の観点から、コンポジションを選択しがちです。
そうですね。一般的なソフトウェア設計だと、そういう感覚になると思います。「継承」というだけの設計はコードの再利用を手を掛けずにという感じですね。「継承」の仕組みはどうなっているかという動画ですので、そのうちですが、コンポジション動画も出しますよ。
@@nekopro_firesoft返信ありがとうございます!コンポジションの動画もお待ちしております!
(^^)/
Python初学者でも分かりやすかったです。
一つ質問があります。
初学者がPythonとJavaを同時に勉強する際、陥りやすい問題はありますか?
猫プロさんの動画はJavaの動画が多く、動画を理解するのには、Javaの勉強をする必要性を感じました。
お気づきのように、Javaはオブジェクト指向の為に作られたような言語ですので、
Javaだとオブジェクト指向の各種パターンを詳細に学べます。
Pythonでオブジェクト指向にすると、回りくどいコードに見えますが、
Pythonの哲学がシンプルだからといって省略した書き方をしないようにした方がいいです。
実はPythonのライブラリの中は、どれもゴリゴリのオブジェクト指向ですごいことになっています。
すごく解りやすく参考にさせてもらってます
ひとつ疑問なのですが、Cat mike = new Mike(); とありますが Mike mike = new Mike(); と記述できそうな気もしますが私の理解が間違っているのでしょうか
注意深くご視聴いただきありがとうございます。
Cat mike = new Mike(); もMike mike = new Mike(); もどちらも書けて部分的には両方とも間違いではありません。
「間違い」というより「適切」なのはどちらかという感じで、後続のコードをどういう風に扱うかという意識によるもので、ケーズバイケースになります。
Cat mike = new Mike();
の場合は、Mikeをネコとして大きな粒度としてしか扱わないという意識と後続のコードになり、
Mike mike = new Mike();
の場合は、MikeをMikeを固有のネコのミケとして、ミケに備わる固有のメソッドまでも使い分けるという意識と後続のコードになります。
private修飾詞は、全てpublic修飾詞にしてしまっても、動きます。だからprivate修飾詞は要らないという発想ではJavaはないです。
先を見通して、できる限り無駄なアクセスを排除するのが堅牢という考えですが、そういう類の、「間違い」というより「適切」なのはどちらかの考え方になります。
実践的には、List list = new ArrayList(); としても ArrayList list = new ArrayList();問題なく、
ArrayList list = new ArrayList();で書くほうが少し多いかもしれません。
継承関係にあるクラスは、Cat mike = new Mike();という書き方も併せて知っておいていただきたいという向きで、示したという感じです。
こういう書き方もあると知っていただきたい意向で作った他の動画が、
【Java プログラミング実践】「すごろく」を敢えてオブジェクト指向にするとどうなるのか?(製造編)
ua-cam.com/video/IIKc9_tuupY/v-deo.html
(39:56以降)
になります。
Masu nomal = new Nomal();
Masu bridge = new BNomal();
Masu hole = new Hole();
Masu snake = new Snake();
この場合は、Nomal・Nomal・Hole・Snakeともにすごろくのマスの一種であるだけの意識でインスタンスを扱うパターンになります。
どちらかというと、こういう書き方を知っておいて、今後のプロジェクトで戸惑うことがないようにという配慮でした。
ご質問ありがとうございました。
@@nekopro_firesoft
丁寧な説明ありがとうございます。
ぼんやりとですがこんな様に使うことも出来るんだと解りました
もっとコードを書きながら動画を参考にオブジェクト指向の理解を深めていきたいと思います。
ありがとうございました。
ミケちゃんはインスタンスではないかと思いました。例が適切ではないと思います。
いやいや、Catからミケちゃんのインスタンスを作るのは、Catにあるフィールド変数とかメソッドしか使えないです。
Mikeは、Catを継承したクラスであって、Mikeクラスの中に、ミケちゃん独自のメソッドを沢山入れて実装しておいて、インスタンスにする、そしてメソッドを呼ぶという感じです。
大きいプロジェクトのイメージが必要になります。それが、継承の存在意義で、そういう現場の例でしたよ。
ミケちゃん一匹の為に、Catクラスを継承して実装します。一匹なので、Catのインスタンスでミケちゃんとすると、インスタンスを呼んでも、ミケちゃんの何かのプログラムを後からしなければならなくなります。
Mikeクラスで先に実装して、他の箇所で実装しないようにして、Mikeクラスからミケちゃんのインスタンスを作りメソッドを呼ぶのが、オブジェクト指向のプログラムの発想です。(クラスの責務)
継承が読みやすいとは思わない。
確かに、親メソッドが隠れていたりなどあったりしますが、オブジェクト指向に慣れてくると、「可読性」が高いと感じられるようになれますよ。