Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

デジタルメディア創作部勉強会「オブジェクト指向入門1」

1,326 views

Published on

Published in: Engineering
  • Be the first to comment

デジタルメディア創作部勉強会「オブジェクト指向入門1」

  1. 1. 指向入門 2014.5.7 ディジタルメディア創作部 勉強会1
  2. 2. 名前:舘山 北斗(ほくてぃー) 学科:電子情報工学科5年 住所:富山市のどこか 年齢:19歳(5/24で20歳) 言語:C/C++,C#,java 部活:ディジタルメディア創作部 軽音楽同好会 ❏自己紹介 指向入門 2
  3. 3. オブジェクト指向の話をする前に・・・ ❏ 指向入門 3
  4. 4. ❏前提知識 指向入門 基本プロジェクトは チームで作る! 4
  5. 5. ❏本題へ 指向入門 オブジェクト指向ってそもそも何?? 5
  6. 6. ❏オブジェクト指向とは? 指向入門 オブジェクト指向とは、オブジェクト同士の 相互作用として、システムの振る舞いを とらえる考え方であり複雑なシステム記述、 巨大なライブラリ(特に部品間で緊密で複雑 な相互関係を持つものの 記述においては、オブジェクト指向の考え方 は必須である。また・・・(ry By Wikipedia(改 6
  7. 7. ❏オブジェクト指向とは? 指向入門 ぁあ? 7
  8. 8. ❏オブジェクト指向とは? 指向入門 わけわからん ってことで・・・ できるだけ優しく、丁寧に やっていきます 8
  9. 9. ❏オブジェクトって何? 指向入門 オブジェクト = 物・物体・対象 身近な「物」 9
  10. 10. ❏オブジェクトって何? 指向入門 身近な「物」ー>現実世界の「物」 他には? 車、キーボード、お菓子、ホワイトボード、 犬、ネジ…(etc 10
  11. 11. ❏オブジェクトって何? 指向入門 ここからが本題 11
  12. 12. ❏オブジェクトって何? 指向入門 プログラムの世界での「物」って? ゲームで例えると・・・ ( ´◔ ‸◔`)なんぞ???? 12
  13. 13. ❏オブジェクトって何? 指向入門 ゲームで使う素材一つ一つが「物」 13
  14. 14. ❏オブジェクトって何? 指向入門 プログラムの世界での「物」-> 「データ」 音声データ テキストデータ 変数 14
  15. 15. ❏オブジェクトって何? 指向入門 データ単体だけなの? 画像を動かしたい ↓ 関数move()を呼ぶ ↓ 座標をいじりまくる♡ 15
  16. 16. ❏オブジェクトって何? 指向入門 関数と変数は1つのセット プログラムの世界での「物」-> 「データ+関数」 16
  17. 17. ❏オブジェクト指向って? 指向入門 オブジェクト = データ+関数 データと関数に注目した指向 17
  18. 18. ❏データと関数 指向入門 ( 'ω') (‘ω’ ) いい天気だね せやな Obj:A Obj:B オブジェクト同士で データが行き来する 18
  19. 19. ❏データと関数 指向入門 ※艦娘たちが可愛すぎて死にそう 19
  20. 20. ❏データと関数 指向入門 艦娘:比叡 敵艦船:駆逐ロ級 attack(駆逐ロ級); setDamage(104); attack(比叡);setDamage(25); 20
  21. 21. ❏データと関数 指向入門 いろんなオブジェクトが 相互に関係しあって 1つのシステム として成り立つ 21
  22. 22. ❏データと関数 指向入門 だから何が違うの?? 22
  23. 23. ❏違いは何? 指向入門 今までのプログラミングのやり方 比叡attack(); set駆逐ロ級Damage(104); set比叡Damage(25); 駆逐ロ級attack(); 処 理 の 流 れ それぞれのattack関数とsetDamage関数を 用意しなくちゃいけない 汚いコードの原因 23
  24. 24. ❏違いは何? 指向入門 オブジェクト指向を取り入れたプログラミング 比叡.attack(駆逐ロ級); 駆逐ロ級.setDamage(104); 比叡.setDamage(25); 駆逐ロ級.attack(比叡); 処 理 の 流 れ それぞれのオブジェクトで attack関数とsetDamage関数を定義すればいい 24
  25. 25. ❏違いは何? 指向入門 で?? 25
  26. 26. ❏違いは何? 指向入門 行数が短くなる? プログラムの効率が良くなる? 26
  27. 27. ❏違いは何? 指向入門 行数が短くなる? プログラムの効率が良くなる? 27
  28. 28. ❏じゃなんのために? 指向入門 いろんな関数や変数を1つにすると・・・ 28
  29. 29. ❏じゃなんのために? 指向入門 29
  30. 30. ❏じゃなんのために? 指向入門 各関数 120行 の処理! 30
  31. 31. ❏じゃなんのために? 指向入門 いろんな関数や変数を1つにすると・・・ 超 ぐちゃぐちゃコードになる 31
  32. 32. ❏じゃなんのために? 指向入門 ぐちゃぐちゃになる原因は? 本来分けて考えるものを 1つのファイルに書いてる!! main.cpp 32
  33. 33. ❏じゃなんのために? 指向入門 オブジェクトごとに1つのファイルで定義 処理が分割されてスッキリする 33
  34. 34. ❏じゃなんのために? 指向入門 比叡attack(); set比叡Damage(int); 駆逐ロ級attack(); set駆逐ロ級Damage(int); main.cpp 比叡.cpp 比叡attack(); set比叡Damage(int); 駆逐ロ級attack(); set駆逐ロ級Damage(int); 駆逐ロ級.cpp 34
  35. 35. ❏じゃなんのために? 指向入門 比叡に関すること->オブジェクト比叡 ロ級に関すること->オブジェクトロ級 オブジェクトごとに独立させる 35
  36. 36. ❏分けるメリット 指向入門 36 見やすい! 拡張しやすい! デバッグしやすい!
  37. 37. 37 ❏ちょっと整理 指向入門 データと関数に注目した指向 オブジェクト指向とは? なんでオブジェクト指向なの? データと関数がセットになったもの オブジェクトとは? オブジェクトが独立しているおかげで いろんなメリットがある もちろんデメリットもあるけどここでは省略
  38. 38. ❏ちょいと整理 指向入門 オブジェクト指向とは、オブジェクト同士の 相互作用として、システムの振る舞いを とらえる考え方 ✌('ω'✌ )三✌('ω')✌三( ✌'ω')✌ 38
  39. 39. ❏もっと具体的に 指向入門 タイヤ ライト ガラス エンジン ゴム ホイール 電気回路 電球 ソーダ灰 スパーク プラグ いろんな物が集まっている 39
  40. 40. ❏もっと具体的に 指向入門 独立した様々な物が合わさって 1つの物が完成する プログラムでも同じことがしたい! 40
  41. 41. ❏もっと具体的に 指向入門 41 なんで?
  42. 42. 42 ❏もっと具体的に 指向入門 現実に起こっていること ↓ コンピュータ上で再現したい プログラミングって・・・
  43. 43. 43 ❏もっと具体的に 指向入門 自然に近い形で再現 オブジェクト指向
  44. 44. 44 ❏じゃどうやって組むか? 指向入門 class:クラス
  45. 45. 45 ❏次回予告 指向入門 次回 「 指向入門②」 クラスの作り方、役割

×