ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

智恵の和(技術知識の和)コミュの2007年12月1日議事録

  • mixiチェック
  • このエントリーをはてなブックマークに追加
★教科書
 教科書「10日で覚えるJava入門教室」第10日 萩本さん

Q.無名クラスってどういうときに使います?
A.Listner系で使われることが多いですね


★トピックス
Ruby 牛尾さん
・教育ツールとしてRubyの利点
  オブジェクト指向は難しい
   →概念と実装の両面の理解が必要
   →プロジェクトレベルの複雑なアプリでしか体験出来ない事もある
   →前提知識の多さ
  
  そこでRuby
   →オブジェクト指向の本質だけを書ける
   →簡単なので早く沢山体験出来る

・オブジェクト指向型開発とは
  システムを現実世界にある「もの」(オブジェクト)として捉える方法
   →日常生活で「もの」を扱うときと同じような感覚でシステム構築が出来る
   →実際のアプリケーションでは現実世界にない「もの」もある

  説明は難しい
   →習うより慣れよう
    - 多くのパターンに触れると分かります
    - Rubyで体験してみましょう

・クラス
  Rubyでのプログラムの単位
  プログラムを役割分担ごとに分けたのがクラス
  既存のAppやクラスが協調して1つの機能が動く
  役割はもの・概念・その他で役割分担


ex:
 人間(クラスの名前)
 人間を表します(クラスの役割)

 クラスの振る舞い:
名前を管理します
  身長を管理します
寝ます
     [振る舞いの中身(他のクラスからは見えない)]
食べます

・クラスからオブジェクトを生成する
  クラスはオブジェクトにしないと動きません
  オブジェクトは1つのクラスから1..*作れます
  ex:
   クラス   :人間
   オブジェクト:山田太郎

・クラス(オブジェクト)の使い方
  クラスは他のクラスから命令されないと動かない
  クラスは命令されると自分の役割分だけ働く
  クラスはプログラム全体の事は意識しません
  データを保存及び取得する役割を担うことが出来ません
  たとえば,人間に関することは人間クラスに書いています
  クラスは他のクラスの振る舞いだけ見えてます

・最初のプログラム
  人間クラスを動かしてみよう
  クラスは他のクラスから命令されないと動けないので
  人間に命令する役割の管理者クラスを作って人間を動かします

  Ruby→管理者→人間→画面

プログラム
$KCODE="SJIS"
class Ningen
def initialize(name, shincho)
@name = name
@shincho = shincho
end
def eat
puts "#{@name}は食べています"
end
def sleep
puts "#{@name}は寝ています"
end
end

ushio = Ningen.new("牛尾", 169)
ushio.eat
ushio.sleep

・社員起立プログラム その1
  社長命令起立の具体例
  - 社長と社員(部長,課長,担当)がいて,壁に遮られている
  - 社長は「立ちなさい」と命令するだけ(壁の向こうにどんな社員がいるかは知らない)
  - 社員は社長から呼ばれたら起立しなければいけない
    部長:だるそうに立つ
    課長:すばやく立つ
    担当:普通に立つ

 これどこかで見たことあるなぁと思ったら書籍「オブジェクト脳の作り方」でした.

 これをプログラムで実現するには「継承」,「ポリモーフィズム」を使う

★shacho.rb

$KCODE="SJIS"
require "shain.rb"

shain = ShainFactory.create(ARGV[0])
puts shain.standup


★syain.rb

$KCODE="SJIS"
class Shain
end

class Tanto < Shain
def standup
"担当が普通に起立しました"
end
end

class Shunin < Shain
def standup
"主任がすばやく起立しました"
end
end

class Bucho < Shain
def standup
"部長がだるそうに起立しました"
end
end

class ShainFactory
def ShainFactory.create(yakushoku)
case yakushoku
when "担当"
Tanto.new
when "主任"
Shunin.new
when "部長"
Bucho.new
else
rasise "該当する役職が見つかりません"
end
end
end


  オブジェクト指向の3大基礎
   - 継承
   - ポリモーフィズム(多態性)
   - カプセル可

  Duck Typing
   - 動的型の柔軟性を表現する概念
   - アヒルのように鳴ければ,それはアヒルである
   - 乱暴な言い方「アヒルのくせに車を運転するな」

C:Comment
  
C.実行時にしかエラーが出ないインタプリタは果たして大規模なPJで
適用できるのか?という問題があるけど、今はいろいろなテストツールが
 あるので必ずしも問題とはならない

C.ツールからテストコードを書いてくれるような便利なツールは無いか?
 今のところRubyではないような・・・.

C.シンプルに書ける言語だからバグを作りこむ事も少ないわけで,
シンプルだからかえって信頼性の高いものが作れるという考え方もある.
 

コメント(3)

牛尾さんのテキストは、以前オブジェクト倶楽部でやった「オブジェクトゲーム」の資料を直したものでしたねウインク「オブジェクトゲーム」は社内のオブジェクト指向教育で、ありがたく使わせてもらってますグッド(上向き矢印)
どうもありがとうございましたexclamation ×2
萩本先生を始めに懐かしい方々と再会出来て、本当に楽しかったですし良かったですわーい(嬉しい顔)
講義の方は、自分としては全体の40%ぐらいしか理解できていないです。げっそり
うーんやっぱり、もうちょっと早く参加すれば良かったと後悔してます。あせあせ(飛び散る汗)
願わくば、もう一度最初からJavaを・・・苦笑

来年も参加させていただきますので、どうぞよろしくお願いいたしますexclamation ×2わーい(嬉しい顔)
Maenoさん、いつもながらまとめ助かります!
C:Comment のところは岩田のフィルタも少し入っているかも、なので
間違っていたらゴメンなさい!

もこ(橋沢)さん、久々のご参加嬉しかったです。
また来年もご一緒に勉強しましょ〜ハート達(複数ハート)

当日の参加者一覧です。(敬称略)

萩本、牛尾、橋沢、山田、井上、高橋、中島、広川、
福島、徳重、本間、田中、板倉、森川、進藤、小棚木、
鈴木、前野、河村、宮田、田中、岩田

以上22名。(すごい!)

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

智恵の和(技術知識の和) 更新情報

智恵の和(技術知識の和)のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング