lycheejam's tech log

チラ裏のメモ帳 | プログラミングは苦手、インフラが得意なつもり。

C#基礎 オブジェクトと継承

概要

放送大学の授業とつながった
やっと点と点がつながった感じがする

オブジェクトってなんとなーくで分かってたつもりだし
継承も調べてみて「こんな感じか」、「へー」って感じだったけど

授業と本でパッとつながった

オブジェクトって何ぞ?

オブジェクト - Wikipedia

モノだ!モノだよ!モノなんだよ!
目に見えるものすべてがオブジェクトなんだよ!(食い気味)
ここにあるPCもオブジェクトなんだよ!(スッキリしすぎて食い気味)
汚いデスクさらしてすんません。
f:id:HM_Atlas:20171129202845j:plain

オブジェクトがPCでPCの特徴を定義したのがクラスであってるよね?
やばい?授業で勉強したこと役に立ってる?

継承

話とびすぎ~ってそこのあなた
本当は継承が書きたいんだ
ufcpp.net
docs.microsoft.com

既に定義しているクラスを拡張したり変更したりするらしい。

PCをクラス化してみようぜ
f:id:HM_Atlas:20171129204001p:plain
こんな感じか?

is a 関係 / kind of 関係

is-a - Wikipedia

「〇〇は△△である」「〇〇は△△の一種である」この呪文を唱えながら考える

PC周りの関係で考えていけば
・CPUはPCパーツである(一種である)
・マウスは周辺機器である(一種である)

あれ?ちょっとなんかいい感じ?
※それ違う!ってなったら指摘お願いします。

じゃあ、こっちは?
・周辺機器はPCである
いや、違うな周辺機器はPCではない

じゃあこれ!
・周辺機器はゲーム環境である
・PCはゲーム環境である
これで絵に書いてみようよ

f:id:HM_Atlas:20171129205352p:plain

じゃあちょっとソース書いてみようよ


gist8a2c805a565b11b1f3848cd01f71f71b

PCクラス
  CPU:core i7-6700k
  GPU:GTX 1070
  HDD:3500GB
  電源:650W
  イス:AKRACING1
  デスク:1800*900
PCはゲーム環境
周辺機器クラス
  イス:AKRACING2
  デスク:1800*900
  マウス:Rival 300
  モニター:BenQ XL2411
  キーボード:FILCO Majestouch 2
周辺機器はゲーム環境

なんかすっきりしねー
PCは周辺機器が使えんと意味がないぞ
でも、ゲーミング環境って点ではあってるのか?
周辺機器からゲーム環境に矢印ではなくてPCに矢印が正しいか?

図を書いてたCacooがいつの間にか消えていたからもう書くのは嫌じゃ

雑感

授業でやったモデル化、クラス化がスッキリわかってきて
仕事で触ってるシステムのDB設計とかこう言う意図があるのかな?
とか想像できるようになった

教授が住民基本台帳の制度化の時にかかわってた話聞いて
自分も担当業務の範疇だしいろいろ面白かった
人の人生をモデル化するって話だった。