15
<<
<
>
>>
1/1
1 ななしのよっしん
2009/02/16(月) 19:10:12 ID: ZCBTEz2SnD
ニコ動でオブジェクト指向なんて言葉を見るとは思わなんだw
概要ももはや嫌がらせだなw
2 Y2 ◆Qxyaj2xnKE
2009/06/13(土) 09:07:18 ID: 3Pi7rRR5At
3 ななしのよっしん
2010/08/20(金) 15:12:48 ID: yPbJTH2XMy
4 ななしのよっしん
2010/11/02(火) 18:54:59 ID: Q4ZMoD6o6P
>>3
つたない(&独学)で理解してもらえるかはわからないが、
ネトゲのキャラなんかはいい例だと思う。
たとえば「戦士」という職業があったとする。
もちろん戦士には剣で斬りかかるとか盾で防御するとか、そういった動作ができなきゃいけない。
他にも、HPやMPといったパラメータや装備品といった情報も
持ってなきゃいけない。
これらをひっくるめてパッケージにしたのが「クラス」
で、こいつを雛形にして作られる実体が「インスタンス」
いわば「戦士のA君」とか「戦士のB君」とかがインスタンス。
どちらも同じ機能やパラメータを持っているけど、個々の中身は違う。
(A君とB君では装備品やレベルなんかが違ってるはず。)
同様に、「魔法使い」「僧侶」「盗賊」なんてクラスも作れるんだけど、
そもそもどんなキャラ(それこそモンスターですら)もHPやMP、
名前なんかは絶対に持っていなければいけないんだから
それらをまとめて「キャラクター」クラスを作り
「キャラクター」クラスに個々の違いを付け足すことで
ソースコードの大半を共有して管理しやすくできる。
これが「継承」。
継承はクラスに付け足すだけじゃなくて、複数のクラスを混ぜてもいい
「キャラクター」クラス+「剣で斬る」→「戦士」クラス
「キャラクター」クラス+「魔法を使う」→「魔法使い」クラス
「戦士」クラス+「魔法使い」クラス→「魔法戦士」クラス
(ただし、最後はダイヤモンド継承になるから設計としては余りよろしくないかも)
5 ななしのよっしん
2011/01/22(土) 21:15:21 ID: dBPvtZqmiX
>>4
厳密に言えば、「ソースコードの共有」は手段であって目的ではないと思う。
いわゆるダックタイピングが示すように「概念を共有する」(ことによって思考を簡素化する)のが重要で、
なるべくなら実装の詳細はそれとは独立に考えられるのが理想。
せっかくだからキャラクターメイキングで言えば、
「こうげき」というコマンドがあった時に、
剣を振るのか、格闘技で戦うのかはキャラクターのクラスによって決まるわけだが、
通常攻撃という大きな括りでは同じものなので、「インターフェースは同じで良いだろJK」としておき、
中身の計算式はクラス別に特化した物を使う、と
(武道家は武器もつと攻撃力が下がるとか)
ただ、「戦士」ー>「聖戦士」みたいに基本的にはアッパーコンパチな関係がある場合、
「計算は前職と同じです」として楽をする事ができる。
これがソースコードの共有。基本結果的にそうなるのであって、最初からこれを目指すと大概良くない設計になる。
ちなみに、この例だと「こうげき」は大きく括れるとしているけど、
ロマサガみたいなゲームだと無理だからね、と一応つっこんでおく。
6 ななしのよっしん
2011/07/30(土) 09:05:25 ID: DlCzzatqs8
7 ななしのよっしん
2011/07/30(土) 10:05:38 ID: zp4a/Z6548
8 ななしのよっしん
2011/08/01(月) 11:26:19 ID: zkxi1Lw5pE
9 ゲマ♂
2012/12/07(金) 09:38:09 ID: srzeVHJmaP
学級のクラスと階級のクラスについても説明した方がいいのでは?
10 ななしのよっしん
2020/10/24(土) 22:34:00 ID: WntUi5DBoB
ウルトラマンタイガはほかの2人が経験豊富な年上に加えてはっきりしたパワータイプとあらごとに慣れてる常識人なスピードタイプと得意不得意がはっきりしてるから比べられるとかわいそうではあるよな。なんというか器用貧乏というか…
まあもっとものび太くんタイプ…なんだろうけど彼の場合ヒーロー的な資質を持つメンタルの持ち主で恐らく漫画界でも1、2を争う凄腕ガンマンという強みもあるがこの子はそれすらないって…ダメな子程可愛いというやつか女の子だしな
そういやこの子も80先生の授業習ってたのだろうか?
そして戦闘力でも多分同じウルトラウーマンで年齢も下のグリージョにも劣ってるあたり哀愁を感じる…
11 ななしのよっしん
2020/12/12(土) 07:04:52 ID: E72Rmkm3Sj
Aクラスの上にSクラス
これ自体は戦前からあったらしいがサブカルに定着したのは幽遊白書が契機だと思ってる
ARMSのナノマシンみたいな感じで
12 ななしのよっしん
2021/04/20(火) 18:39:58 ID: xsBUawWmiL
13 ななしのよっしん
2021/05/08(土) 12:11:00 ID: owoiftRrFs
会社と社員の例はクラスとモジュールの違いの説明に終始していて、クラス自体の性質にはあまり触れていないように思います。それにクラスやモジュールの説明も何かの言語実装を念頭においている印象があり、言語によってはあてはまらないのではと感じます。
今回、ダイヤモンド継承問題を取り上げて、そこから単一継承、インターフェース、抽象クラスの説明をする編集を予定していますが、以下の一部もしくは全部を実施して記述を整理したいと思います。
会社と社員の例は廃止もしくは「クラスとモジュールの違い」としてモジュールの記事に移動。
クラスについてはクラス(プログラミング)もしくはクラス(オブジェクト指向)として分離。
上記ダイヤモンド継承問題等の説明。
特に反対意見が出なければ、2021年5月23日0時以降の任意のタイミングで実施いたします。
14 ななしのよっしん
2022/02/03(木) 22:47:47 ID: z6lHwHM405
俺みたいなやつがクラスLINEで発言するべきではなかったんだ
15 ななしのよっしん
2022/11/30(水) 16:04:04 ID: 7dYPtoPRLl
<<
<
>
>>
1/1
ほめた!
ほめるを取消しました。
ほめるに失敗しました。
ほめるの取消しに失敗しました。