【永久保存版】オブジェクト指向プログラミングの全体像をわかりやすく解説【ずんだもん解説】

  Рет қаралды 27,034

Amatsu Kaede

Amatsu Kaede

Күн бұрын

Пікірлер: 36
@なかむら-p9j
@なかむら-p9j 10 ай бұрын
久々に見ましたが、やっぱめちゃくちゃわかりやすいです 投稿者さんの作る動画好きなので、是非色々作っていただきたい
@TheUmamoe
@TheUmamoe 11 ай бұрын
財布の例えは分かりやすかったです
@ごんちゃん-u8c
@ごんちゃん-u8c Жыл бұрын
スッキルまとまってて、素敵でした!勉強中の子たちにおすすめしました!ありがとうございます!
@opandapanda3478
@opandapanda3478 Ай бұрын
すっごいわかりやすい! 初学者だけど煩雑なクラスに怖くなってたからポリモーフィズムっていう考えがあること知れてよかった。
@リンちゃんと一緒
@リンちゃんと一緒 Жыл бұрын
とても分かりやすい
@ラフラフ-w5m
@ラフラフ-w5m Жыл бұрын
関数は引数を与えないと実体を持つことができない。つまり関数は処理。クラスは引数を与えなくても実体を持つことができる。つまりクラスは原型をつくることと言える。クラスが持つメソッドはそのオブジェクトが持つ機能であり、プロパティはそのオブジェクトが持つ性質のデータである。
@マツダニャンコネン
@マツダニャンコネン Жыл бұрын
ありがとうございます。とてもわかりやすかったです。
@atridott
@atridott Жыл бұрын
うぽつです!今回もわかりやすくて勉強になりました。 メッセージングも扱ってほしいかも👀
@Tumiage-v7f
@Tumiage-v7f 3 ай бұрын
ありがとうございます。参考になります。
@3030algo
@3030algo 9 ай бұрын
素晴らしい動画だ...
@hotcova
@hotcova Жыл бұрын
インターフェースはネットワークでいうプロトコルですよね。やりとり(通信)を標準化することの価値・重要性を思想として伝えようとしていたと思うんですが、この概念を作った人には悪いけど、正直わかりにくかったです笑。
@虎崎衛門-w2p
@虎崎衛門-w2p 8 ай бұрын
インターフェースはクラスの継承で解決できない問題を補うために必要になります。例えばクラスA、クラスB、クラスCで共通の機能を持たせたいとき、クラス1から継承させれば良いだけですが。もし、クラス1とクラス2両方の機能を持たせたいときはどうでしょう?無理ですよね。しかし、インターフェースであれば、無数に共通の機能を指定できます。
@ish_pack
@ish_pack 3 ай бұрын
プロトコルというと動的なダックタイピングにきこえる不思議
@hiroyama3975
@hiroyama3975 5 ай бұрын
これ以上ないというぐらいわかりやすい。
@main-chan-kp3
@main-chan-kp3 4 ай бұрын
気になるのは継承がベストな場合は本当に存在しないのか、ということ。 継承を禁止している言語は(多分)ないのでどういう場面で使うべきなのか、経験が足りていないので分からない。
@ish_pack
@ish_pack 3 ай бұрын
1.入力が反変=サブクラスのほうが対応できる型が広い 2.出力が同変=サブクラスのほうが吐き出す型が狭い ※1,2でサブタイピング リスコフの置換原則 3.関心のないメソッドが内部状態をいじることで必要な機能がぶっ壊れることがない(インターフェース分離) 4.内部状態, 入力, 出力を介さない遅延的な外部依存が増えることで機能が障害されない これらが完璧に守られているときだと個人的に信じてます
@nbtnbt5492
@nbtnbt5492 3 ай бұрын
VBAやGo、Rustはオブジェクト指向に対応していますが継承機能がないですね。
@visualbasicvb4388
@visualbasicvb4388 Ай бұрын
要件定義に「継承を使え」と書いてあれば継承がベストな場合ですよ。
@はてなインコ
@はてなインコ 6 ай бұрын
4:04  クラスを実体化する事は「インスタンス化」と言うのが一般的かな…?(英語ではInstantiate) 「インスタンス」はインスタンス化によって生み出された実態の事
@はてなインコ
@はてなインコ 6 ай бұрын
4:28 財布を作る工程は「インスタンス化」 財布は「インスタンス」ですかね
@Yu8-u6j
@Yu8-u6j Жыл бұрын
解説ありがとうございます。質問なのですが、概念図を作成したツールを教えていただけないでしょうか?
@amazkaede
@amazkaede Жыл бұрын
どの概念図かわかりまぜんが、使用しているソフトウェアは、YMM4とPowerPointだけです。
@Yu8-u6j
@Yu8-u6j Жыл бұрын
@@amazkaede 素早いお返事ありがとうございます。曖昧な質問ですみません。 9:29で表示されるような、関係性を表す絵を効率的に作成したいと思い、質問しました。 新しく物事を勉強する時に、全体像や関係性を図で表すと分かりやすいからです。 自分の場合はマインドマップ作成ソフトで図を作成しているのですが、複雑な関係性になると作成しずらいという問題を抱えています。もっと効率的な方法が有るのではないかと思い、質問しました。 曖昧な質問に答えてくださり、ありがとうございました。
@visualbasicvb4388
@visualbasicvb4388 2 ай бұрын
@@Yu8-u6j 今更だけど複雑な図を作成したいならテキスト形式で描くツールがいいと思う。PlantumlかD2: Declarative Diagrammingがおすすめ。A->Bみたいな矢印いっぱい書くと図が勝手にできるかんじよ。
@織田豊-b3z
@織田豊-b3z Жыл бұрын
オブジェクト指向の解説の動画で言うのもなんですが、オブジェクト指向オワコン論について解説してほしいです
@amazkaede
@amazkaede Жыл бұрын
実は作りたいなとは思ってました(気長に待っていてくれると幸いです)
@匿名-b1p
@匿名-b1p 9 ай бұрын
約一年前のコメントへの返信もアレですが、ゆるコンピュータ学ラジオのパラダイムシリーズの話がおすすめかもしれません
@虎崎衛門-w2p
@虎崎衛門-w2p 8 ай бұрын
クラスは変数や構造体にメソッドを持たせることができる程度の違いしか無いですよね。クラスや継承を使えば長文書かずに済む場面はとても多いですし、逆にクラス化が必要ない処理までクラスにすると複雑さが増して脳内把握が難しくなります。どこでクラスを使うのかは自分が決めればよいことなので、何がオワコンなのかちょっと意味が分からないです。多重構造を簡単に把握できる人が作ったプログラムを素人が見ると、理解できないという欠点はあるかもしれません。オワコンってようするに馬鹿でも分かる書き方にしてほしいって意味なんじゃないでしょうか。でもクラスを使う必要がある様な大規模なコードをクラス無しで書くと長文になるので、それはそれで把握が難しくなります。クラスを使う必要がある様な処理が複雑なのであって、クラスそれ自体が複雑なのではないと思います。おそらくオワコンと言ってる人はそこを勘違いしてます。
@kよろしく
@kよろしく 3 ай бұрын
エンティティと値オブジェクトというのも意識した方がいい。
@北条練
@北条練 Жыл бұрын
合成は、所有のことだろうか?
@yukizokin
@yukizokin 6 ай бұрын
オブジェクト指向というと継承が代名詞的に、下手したら入門書の最初に説明ででてくるからそれで洗脳されてしまった人が迷走する時代が30年くらい続いたと思う。最近ようやくその呪縛から解放され出した。(私見)
@ロランアラン
@ロランアラン Жыл бұрын
Qiita で文章にするのも大変なのに、動画にしていただいてありがたかったです。それで、動画の中身だけではわからなかったところがありました。 【前提】 インターフェースを実装したクラスはインターフェースにおけるメソッドを強制される。イメージとしては、メソッドだけがクラスに注入され、そのメソッドを用いてクラスの中でより詳細に機能づけられる。 合成は幾つかのオブジェクトを丸抱えする事で新しいクオブジェクトを作る。(クラスではない) 【質問】 そういう事だとすると、インターフェースと合成が組み合わさる場面が想像しづらいのですが、どうなっているのでしょうか? インターフェースを実装したクラスはメソッドだけを持っていて、インタンス化したオブジェクトについては、別のオブジェクトを合成させることでフィールド(プロパティのことですか?)を共有させることになる…という理解で正しいのでしょうか。
@amazkaede
@amazkaede Жыл бұрын
インターフェースはメソッドだけを定義しているものです、 インターフェースを実装したクラスは、インターフェースに定義されたメソッドは強制されますが、強制されたメソッドだけしか書けないわけではありません。 そのクラス独自のメソッドやフィールドも定義できます。(プロパティはメソッドの一部です。) ある程度以上の規模にならないと、インターフェースを使う恩恵は得られないので、実際にコードを書いてみると理解が速いかもしれません。
@虎崎衛門-w2p
@虎崎衛門-w2p 8 ай бұрын
複数のクラスで共通の機能を持たせるときはクラスを継承しますよね。でももし、2つのクラスを共通の機能として持たせたいときはどうでしょう?無理ですよね。しかし、インターフェースであれば無数の機能をいくつでも共通の機能として持たせることができます。したがって、クラスの継承が関係しないプログラムではインターフェースの出番はありません。
@yukizokin
@yukizokin 6 ай бұрын
継承なんていらなくて、合成でいいんですよね。
"Идеальное" преступление
0:39
Кик Брейнс
Рет қаралды 1,4 МЛН
УЛИЧНЫЕ МУЗЫКАНТЫ В СОЧИ 🤘🏻
0:33
РОК ЗАВОД
Рет қаралды 7 МЛН
«Жат бауыр» телехикаясы І 30 - бөлім | Соңғы бөлім
52:59
Qazaqstan TV / Қазақстан Ұлттық Арнасы
Рет қаралды 340 М.
🎈🎈🎈😲 #tiktok #shorts
0:28
Byungari 병아리언니
Рет қаралды 4,5 МЛН
オブジェクト指向とは?10分で学ぶ【分かりやすい解説シリーズ#57】【プログラミング】
10:31
徳田 啓【プログラミング学習チャンネル】
Рет қаралды 21 М.
【ひろゆき切抜】オブジェクト指向をわかりやすく説明するとどうなるか
8:55
猫でもわかるプログラミング入門【現場SEのプロ仕様の技術】
Рет қаралды 31 М.
【検証】40時間Lispを勉強したら信者になれる?【Lisp1】#118
35:13
ゆるコンピュータ科学ラジオ
Рет қаралды 112 М.
C言語コミュニティの失敗たとえ「鼻から悪魔」【失敗たとえの森2】#69
33:09
ゆるコンピュータ科学ラジオ
Рет қаралды 75 М.
オブジェクト指向のクラスとは?クラスに関する基礎知識を解説!
8:40
SAMURAI ENGINEER [侍エンジニア]
Рет қаралды 33 М.
"Идеальное" преступление
0:39
Кик Брейнс
Рет қаралды 1,4 МЛН