SlideShare une entreprise Scribd logo
1  sur  32
オブジェクト指向
プログラミング入門
ソフトウェア基礎講座 第5回
2011年3月7日
服部健太
2011/3/7
オブジェクトは主体ではない
 オブジェクト技術におけるすべてのもとにな
る基本概念はクラスクラスである
 クラスは可能なデータ構造の集合を現しそれ
らのデータ構造はそのクラスのインスタンスインスタンス
( instance )と呼ばれる
 抽象データ型のインスタンス=数学的要素
 クラスのインスタンス=メモリ上のデータ構造
クラスは(部分的であっても良い)実装を伴う抽象データ型である
定義:クラス
2オブジェクト指向プログラミング入門 5
2011/3/7
クラスとオブジェクト
 オブジェクトは単にクラスのインスタンスの
こと
 クラスはシステムの作成に使われるソフト
ウェアテキスト
 静的な構造
 オブジェクトは実行時のみの概念
 実行時に作成され,操作される
3オブジェクト指向プログラミング入門 5
2011/3/7
メタクラス( metaclass )
 クラスそのものをオブジェクトとして扱うた
めの機構
 メタクラスのインスタンスはクラスである.
 メタクラスの概念を導入している言語では
Smalltalk が有名
 メタクラスを導入すると静的型チェックが困
難になる
 利点よりも問題の方が多いので,本書では扱わな
い
 メタクラスの効果は他の手段によっても代替でき
る 4オブジェクト指向プログラミング入門 5
2011/3/7
「メタ~」について
 「~についての~」のこと
 日本語で「超~」ともいう
 メタデータ
 データについてのデータ
 メタタグ
 タグにつけるためのタグ
 メタ言語
 言語を記述するための言語
5オブジェクト指向プログラミング入門 5
2011/3/7
モジュールと型(クラスの役割)
 モジュールはソフトウェア分解の単位
 ルーチンやパッケージ etc.
 モジュールへの分解はソフトウェアが提供する
サービスとは無関係
 どんなプログラムも 1 つのメインプログラムで書くこと
は可能
 型は特定の動的なオブジェクトの静的な記述
 ソフトウェアの実行中に処理される様々なデータ
要素の静的な記述
 データ(値)を抽象したもの
 すべての型はソフトウェアの実行に直接影響を与
える
6オブジェクト指向プログラミング入門 5
2011/3/7
モジュールと型としてのクラス
 クラスという概念の大きな特徴は,モジュー
ルと型の概念を包括し, 1 つの言語的構造に
併合したこと
 クラスはモジュールであり,型でもある(総
称性がある場合には型のパターン)
7オブジェクト指向プログラミング入門 5
2011/3/7
一様な型体系
 オブジェクト指向の重要な特徴の 1 つは,型
体系が単純で一様( uniform )であること
 整数や実数,論理地,文字などの基本オブジェク
トも,定義済みのライブラリクラス( INTEGER,
REAL, DOUBLE, BOOLEAN, CHARACTER )の
インスタンスとして考えられる
すべてのオブジェクトは何らかのクラスのインスタンスである
オブジェクトの原則( Object rule )
8オブジェクト指向プログラミング入門 5
2011/3/7
一様な型体系の利点
 多くの特殊ケースを設けるよりは 1 つの単純で一律
のフレームワークを使う方がよい
 基本的な型を ADT として記述すること,すなわち
クラスとして記述することは単純で自然なことであ
る
 INTEGER を定義するには,「 + 」や「 <= 」などの演算子
に関する数学的公理を使えばよい
 継承や総称性というオブジェクト指向の機構をすべ
ての型に対して自然に適用できる
 INTEGER , REAL, DOUBLE はより汎用的なクラスである
NUMERIC の継承クラスであると考えることができる
 MATRIX[INTEGER] や MATRIX[REAL] などの総称クラスと
しての MATRIX
9オブジェクト指向プログラミング入門 5
2011/3/7
単純なクラスの例: POINT
x
y
p1
ρ
θ
x
y
rho
theta
POLAR_POINT
CARTESIAN_POINT
rho = sqrt(x*x+y*y)
theta = arctan(y/x)
x = rho*cos(theta)
y = rho*sin(theta)
10オブジェクト指向プログラミング入門 5
2011/3/7
抽象データ型としての POINT 型
TYPES
● POINT
FUNCTIONS
● x: POINT → REAL
● y: POINT → REAL
● rho: POINT → REAL
● theta: POINT → REAL
● translate: POINT×REAL×REAL → POINT
● rotate: POINT×REAL → POINT
● scale: POINT×REAL → POINT
AXIOMS
任意の x,y,a,b: REAL, x: POINT について以下が成り立つ
● x(translate(p1,a,b))=x(p1)+a
● y(translate(p1,a,b))=y(p1)+b
・・・
PRECONDITIONS
・・・
11オブジェクト指向プログラミング入門 5
2011/3/7
属性とルーチン
 クラスにおいては,抽象データ型の関数は特性とな
る
 クラスのインスタンスに適用可能な操作となる
 ある特性は空間によって表現される
 ある情報をそのクラスのすべてのインスタンスに関連付け
ることによって表現される
 属性属性( attribute )と呼ばれる
 ある特性は時間によって表現される
 そのクラスのすべてのインスタンスに適用される計算(ア
ルゴリズム)を定義することによって表現される
 ルーチンルーチン( routine )と呼ばれる
 ルーチンは結果を返すファンクションと返さないプロシー
ジャに分類できる
12オブジェクト指向プログラミング入門 5
2011/3/7
統一形式アクセス
 p1 という点を操作するときには, p1 の内部
的な表現がデカルト座標か極座標か気にせず
に済むようにしたい.
 属性とファンクションを明示的に分けることは適
切か?
 その属性がメモリによって実装されているか
,計算によって実装されているかにかかわら
ず, 1 つの表記でアクセスできる.
 例: p1.x
13オブジェクト指向プログラミング入門 5
2011/3/7
POINT クラスの例
indexing
description: “2 ”次元の点
class POINT feature
x, y: REAL
-- 横座標と縦座標
rho: REAL is
-- 原点 (0,0) までの距離
do Result := sqrt(x^2+y^2) end
theta: REAL is
-- 横軸に対する角度
…
distance(p: POINT): REAL is
--p までの距離
do Result := sqrt((x-p.x)^2)+(y-p.y)^2) end
…
end
14オブジェクト指向プログラミング入門 5
2011/3/7
関数の結果の表記
 予約語 Result を使う
 Result はデフォルト値で初期化される
non_negative_value(x: REAL): REAL is
-- 正ならば x の値,それ以外ならゼロ
do
if x > 0.0 then
Result := x
end
end
15オブジェクト指向プログラミング入門 5
2011/3/7
現在のインスタンス
 どの点の x と y に a と b を足すのか?
 現在のインスタンスの明示的な参照には予約語
Current を使う
 
distance(p: POINT): REAL is
-- p までの距離
do
if p /= Current then
Result := sqrt((x-p.x)^2 + (y-p.y)^2)
end
end
translate(a,b: REAL) is
-- 水平方向に a, 垂直方向に b 移動する
do
x := x+a; y:= y+b
end
16オブジェクト指向プログラミング入門 5
2011/3/7
顧客と供給者
 クラスを使う 2 通りの方法
 そのクラスから継承する
 そのクラスの顧客( client )になる
 この定義では, a は C の属性かファンクションか
もしれないし, C のルーチンのローカルなエン
ティティか引数かもしれない
 さきの例では,クラス POINT は REAL の顧客で
ある
S はクラスとする. a: S という形式の宣言を含むクラス C は S の顧客
( client )であるという.また, S は C の供給者( supplier )であるという
.
定義:顧客と供給者
17オブジェクト指向プログラミング入門 5
2011/3/7
特性呼び出し
 オブジェクト指向の基本的メカニズム
 クラス POINT の特性 translate を p1 に適用せよ
 特性呼び出しの基本形式
 x.f
 x.f(u, v, …)
 x は呼び出しのターゲットと呼ばれる
 2 つ目の形式では f は引数のあるルーチンであり,実引数 u,v な
どは, C の中の f の宣言の仮引数と,型と個数が一致する必要が
ある
 
p1.translate(4.0, -1.5)
(あれば)個々の仮引数を対応する実引数の値に初期化した後, x にアタッ
チされているオブジェクトに対して特性 f を適用する
ターゲット x に対して特性 f を呼び出した効果
18オブジェクト指向プログラミング入門 5
2011/3/7
単一ターゲットの原則
 特性呼び出しと伝統的なプロシージャの違い
 オブジェクト指向形式の特性呼び出しでは,ある
オブジェクトをターゲットとして選び,他の引数
は補助的な地位に追いやられる
オブジェクト指向におけるすべての操作は,その操作の実行時における現在
のインスタンスという特定のオブジェクトに対するものである.
単一ターゲット( Single Target )の原則
translate(p1, 4.0, -1.5)
すべての引数が同
等に扱われている
19オブジェクト指向プログラミング入門 5
2011/3/7
モジュールと型の識別
 クラスはモジュールであると同時に型である
 モジュールはソフトウェアの一部を構成する
関連する機能の集まりである.
 モジュールが型ならば,そのモジュールの中
のすべての操作はその型の特性のインスタン
スに対するものである.
クラス POINT を 1 つのモジュールとして見たとき,このクラスによって提
供される機能は型として見たときのクラス POINT のインスタンスに対して
使用できる操作にほかならない.
モジュールと型の融合がどのように行われるか
20オブジェクト指向プログラミング入門 5
2011/3/7
Current の役割
 あるルーチンに対するすべての呼び出しは,特定の
ターゲットに対するものである
 ルーチンのテキスト上に現れるすべての特性名をその特定
のターゲットに対して適用されるものとして扱う
 p1.translate(4.0,-1.5) という呼び出しにおける, translate
の本体の中のすべての x の記述は「 p1 の x 」を意味する
 Current とは「現在の呼び出しのターゲット」であ
る 
F1 ● ルーチン呼び出しの一部として実行する以外の方法で実行される呼び
出し  
  要素は絶対にない.
F2 ● すべての呼び出しにはターゲットが 1 つある.
特性呼び出しの原則
21オブジェクト指向プログラミング入門 5
2011/3/7
修飾された呼び出しと修飾されない
呼び出し
 修飾された呼び出し
 呼び出しのターゲットが明示的に指定されているもの
 x.f
 x.f(u, v, …)
 修飾されない呼び出し
transform(a, b, factor: REAL) is
-- (a,b) だけ移動し, factor を率として拡大/縮小する
do
translate(a,b); scale(factor)
end
 修飾されないすべての呼び出しはターゲットを Current と
する修飾された呼び出しとして書き直すことができる
do
Current.translate(a,b); Current.scale(factor)
ドット記法
22オブジェクト指向プログラミング入門 5
2011/3/7
演算子特性
 演算子を特性呼び出しと考える
 x + a は x.plus(a) の糖衣構文
indexing
description: “ ”実数
class REAL feature
infix “+”(other:REAL): REAL is
-- 現在の値と other の合計
do … end
infix “-”(other:REAL): REAL is
-- 現在の値と other の差
do … end
prefix “-”: REAL is
-- 符号を逆にした現在の値
end
伝統的な表記法とオブ
ジェクト指向の法則を
調和させることが可能
23オブジェクト指向プログラミング入門 5
2011/3/7
選択的エクスポートと情報隠蔽
 特性の顧客による利用を制限する
class S feature
f …
g …
feature {A, B}
h …
feature {NONE}
i …
end
完全に開示する
顧客のアクセスを制限する
非公開にする
24オブジェクト指向プログラミング入門 5
2011/3/7
自分自身にエクスポートする
indexing
note: “ ”このままでは正しくない
class T feature
x: T
my_routine is do … print(x.secret) … end
feature {NONE}
secret: INTEGER
end
 secret は非公開なので, x.secret は無効
 解決方法:
feature {NONE} のかわりに feature {T} とすればよ
い
25オブジェクト指向プログラミング入門 5
2011/3/7
システムの実行
 いったいどこから実行がはじまるのか?
 1つのオブジェクトが作られ,生成プロシージャが開始される
 ルートオブジェクトはシステムのルートクラスと呼ばれる特定
クラスのインスタンスである
 生成プロシージャはルートクラスに含まれるプロシージャの 1
つである
オブジェクト指向ではソフトウェアシステムの実行は次の 2 つのステップか
ら成り立っている.
 ●その実行のルートオブジェクト( root object )と呼ばれる特定のオブ
ジェクトを
  作成する
 ●生成プロシージャ( creation procedure )と呼ばれる特定のプロシー
ジャをその
  オブジェクトに適用する
定義:システムの実行
26オブジェクト指向プログラミング入門 5
2011/3/7
システム
 システムの組み立てに必要な 3 つのこと
 クラスの集合 CS .そのシステムのクラスセットと呼ばれ
る
 CS の中のどのクラスがルートクラスか
 そのルートクラスのどのプロシージャがルート生成プロ
シージャか
 意味のあるシステムを作るためには,ルートクラス
が直接あるいは間接に必要とするクラスすべてが
CS に含まれていなければならない
そのシステムのクラスセットの中にルートクラスが必要とするすべてのクラ
スが含まれている場合にのみ,システムは閉じている.
定義:システムクロージャ
27オブジェクト指向プログラミング入門 5
2011/3/7
メインプログラムとどこがちがう
の?
 伝統的なメインプログラムでは,次の無関係な概念
を融合していた
 実行を開始する場所
 システムアーキテクチャの一番上(トップ)の,あるいは
,根本的な要素
 処理の開始時点がシステムの重要な要素である必然
性はまったくない
 例:オペレーティングシステムにおけるブート手続き
 システムの最も重要な属性は,それに含まれるクラ
スの集合と,それらクラスの個々の機能と,クラス
間の属性
 システムの進化に合わせて簡単に変更できなくてはならな
い
28オブジェクト指向プログラミング入門 5
2011/3/7
システムを組み立てる
 組み立てツールにとって必要な情報
 ルートクラスの名前
 ユニバース( universe ).ルートが必要とするクラスのテ
キストを含むファイルの集合
 これらはクラステキストには記述できない
 本書( Eiffel )では Lace と呼ばれる制御言語を用
いる
system painting root
GRAPHICS(“painting_application”)
cluster
base_library: “librarybase”;
graphical_library: “librarygraphics”;
painting_application: “userapplication”
end
29オブジェクト指向プログラミング入門 5
クラスの見つけ方
 要求仕様書の記述にある名詞に注目する
 The elevator will close its door before it moves to another
floor
 ELEVATOR, DOOR, FLOOR がクラスになる
 残念ながら,この方法はほとんど役に立たない
 明らかなクラスしか見いだせないばかりか余計なクラスも含む
 無駄なクラスを避ける
 DOOR というクラスは本当に必要だろうか?
 ELEVATOR の中にドアを開け閉めするコマンドを用意すれば済
むかもしれない
 新しいクラスが必要か?
 何階かという概念を表すのには整数でも十分?
 整数の属性には含まれない重要な操作がある場合や利用で
きる操作を制限したい場合, FLOOR クラスは妥当かもし
れない
2011/3/7 30オブジェクト指向プログラミング入門 5
システム分析
 「実世界をそのままモデル化すること」では
ない
 構築中のソフトウェアにとって意味のある部
分をモデル化すること.
2011/3/7 31オブジェクト指向プログラミング入門 5
次回予定
 日時: 2011年3月17日(木)13:
00~
 場所: LB  2 F / A 会議室
 内容:オブジェクト
2011/3/7 オブジェクト指向プログラミング入門 5 32

Contenu connexe

Tendances

Yamadai.Rデモンストレーションセッション
Yamadai.RデモンストレーションセッションYamadai.Rデモンストレーションセッション
Yamadai.Rデモンストレーションセッション考司 小杉
 
[読会]Logistic regression models for aggregated data
[読会]Logistic regression models for aggregated data[読会]Logistic regression models for aggregated data
[読会]Logistic regression models for aggregated datashima o
 
[読会]A critical review of lasso and its derivatives for variable selection und...
[読会]A critical review of lasso and its derivatives for variable selection und...[読会]A critical review of lasso and its derivatives for variable selection und...
[読会]A critical review of lasso and its derivatives for variable selection und...shima o
 
error handling using expected
error handling using expectederror handling using expected
error handling using expectedAkira Takahashi
 
Rの初歩: 2. ベクトル
Rの初歩:  2.  ベクトルRの初歩:  2.  ベクトル
Rの初歩: 2. ベクトルTeiko Suzuki
 
templateとautoの型推論
templateとautoの型推論templateとautoの型推論
templateとautoの型推論MITSUNARI Shigeo
 
C++0x 言語の未来を語る
C++0x 言語の未来を語るC++0x 言語の未来を語る
C++0x 言語の未来を語るAkira Takahashi
 
トピックモデル
トピックモデルトピックモデル
トピックモデル貴之 八木
 
13.01.20. 第1回DARM勉強会資料#4
13.01.20. 第1回DARM勉強会資料#413.01.20. 第1回DARM勉強会資料#4
13.01.20. 第1回DARM勉強会資料#4Yoshitake Takebayashi
 
すごいHaskell 第7章 型や型クラスを自分で作ろう(前編)
すごいHaskell 第7章 型や型クラスを自分で作ろう(前編)すごいHaskell 第7章 型や型クラスを自分で作ろう(前編)
すごいHaskell 第7章 型や型クラスを自分で作ろう(前編)Nozomu Kaneko
 
第一回Data mining勉強会 -第二章 - 原案
第一回Data mining勉強会 -第二章 - 原案第一回Data mining勉強会 -第二章 - 原案
第一回Data mining勉強会 -第二章 - 原案yushin_hirano
 
JDK7 Quiz... @ JavaOne報告会 at Tokyo
JDK7 Quiz... @ JavaOne報告会 at TokyoJDK7 Quiz... @ JavaOne報告会 at Tokyo
JDK7 Quiz... @ JavaOne報告会 at TokyoEIICHI KIMURA
 
画像認識技術の基礎から見るビジネスの可能性
画像認識技術の基礎から見るビジネスの可能性 画像認識技術の基礎から見るビジネスの可能性
画像認識技術の基礎から見るビジネスの可能性 Rentaro Yamaguchi
 
AI2: Safety and Robustness Certification of Neural Networks with Abstract Int...
AI2: Safety and Robustness Certification of Neural Networks with Abstract Int...AI2: Safety and Robustness Certification of Neural Networks with Abstract Int...
AI2: Safety and Robustness Certification of Neural Networks with Abstract Int...T T
 
Effective Modern C++ 勉強会#1 Item3,4
Effective Modern C++ 勉強会#1 Item3,4Effective Modern C++ 勉強会#1 Item3,4
Effective Modern C++ 勉強会#1 Item3,4Takashi Hoshino
 
Javascriptで学ぶ Functional Programming
Javascriptで学ぶ Functional ProgrammingJavascriptで学ぶ Functional Programming
Javascriptで学ぶ Functional Programmingtodorokit
 

Tendances (20)

Yamadai.Rデモンストレーションセッション
Yamadai.RデモンストレーションセッションYamadai.Rデモンストレーションセッション
Yamadai.Rデモンストレーションセッション
 
[読会]Logistic regression models for aggregated data
[読会]Logistic regression models for aggregated data[読会]Logistic regression models for aggregated data
[読会]Logistic regression models for aggregated data
 
[読会]A critical review of lasso and its derivatives for variable selection und...
[読会]A critical review of lasso and its derivatives for variable selection und...[読会]A critical review of lasso and its derivatives for variable selection und...
[読会]A critical review of lasso and its derivatives for variable selection und...
 
error handling using expected
error handling using expectederror handling using expected
error handling using expected
 
Rの初歩: 2. ベクトル
Rの初歩:  2.  ベクトルRの初歩:  2.  ベクトル
Rの初歩: 2. ベクトル
 
Atomic Architecture
Atomic ArchitectureAtomic Architecture
Atomic Architecture
 
Linqことはじめ
LinqことはじめLinqことはじめ
Linqことはじめ
 
templateとautoの型推論
templateとautoの型推論templateとautoの型推論
templateとautoの型推論
 
C++0x 言語の未来を語る
C++0x 言語の未来を語るC++0x 言語の未来を語る
C++0x 言語の未来を語る
 
トピックモデル
トピックモデルトピックモデル
トピックモデル
 
13.01.20. 第1回DARM勉強会資料#4
13.01.20. 第1回DARM勉強会資料#413.01.20. 第1回DARM勉強会資料#4
13.01.20. 第1回DARM勉強会資料#4
 
C#6.0の新機能紹介
C#6.0の新機能紹介C#6.0の新機能紹介
C#6.0の新機能紹介
 
すごいHaskell 第7章 型や型クラスを自分で作ろう(前編)
すごいHaskell 第7章 型や型クラスを自分で作ろう(前編)すごいHaskell 第7章 型や型クラスを自分で作ろう(前編)
すごいHaskell 第7章 型や型クラスを自分で作ろう(前編)
 
Haskell
HaskellHaskell
Haskell
 
第一回Data mining勉強会 -第二章 - 原案
第一回Data mining勉強会 -第二章 - 原案第一回Data mining勉強会 -第二章 - 原案
第一回Data mining勉強会 -第二章 - 原案
 
JDK7 Quiz... @ JavaOne報告会 at Tokyo
JDK7 Quiz... @ JavaOne報告会 at TokyoJDK7 Quiz... @ JavaOne報告会 at Tokyo
JDK7 Quiz... @ JavaOne報告会 at Tokyo
 
画像認識技術の基礎から見るビジネスの可能性
画像認識技術の基礎から見るビジネスの可能性 画像認識技術の基礎から見るビジネスの可能性
画像認識技術の基礎から見るビジネスの可能性
 
AI2: Safety and Robustness Certification of Neural Networks with Abstract Int...
AI2: Safety and Robustness Certification of Neural Networks with Abstract Int...AI2: Safety and Robustness Certification of Neural Networks with Abstract Int...
AI2: Safety and Robustness Certification of Neural Networks with Abstract Int...
 
Effective Modern C++ 勉強会#1 Item3,4
Effective Modern C++ 勉強会#1 Item3,4Effective Modern C++ 勉強会#1 Item3,4
Effective Modern C++ 勉強会#1 Item3,4
 
Javascriptで学ぶ Functional Programming
Javascriptで学ぶ Functional ProgrammingJavascriptで学ぶ Functional Programming
Javascriptで学ぶ Functional Programming
 

Similaire à オブジェクト指向入門5

オブジェクト指向入門4
オブジェクト指向入門4オブジェクト指向入門4
オブジェクト指向入門4Kenta Hattori
 
初心者講習会資料(Osaka.r#6)
初心者講習会資料(Osaka.r#6)初心者講習会資料(Osaka.r#6)
初心者講習会資料(Osaka.r#6)Masahiro Hayashi
 
RubyとJavaScriptに見る第一級関数
RubyとJavaScriptに見る第一級関数RubyとJavaScriptに見る第一級関数
RubyとJavaScriptに見る第一級関数Altech Takeno
 
BNN CAMP vol.3  インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 2
BNN CAMP vol.3  インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 2BNN CAMP vol.3  インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 2
BNN CAMP vol.3  インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 2Atsushi Tadokoro
 
初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)Masahiro Hayashi
 
Swift 3 を書くときに知っておきたい API デザインガイドライン #love_swift #akibaswift
Swift 3 を書くときに知っておきたい API デザインガイドライン #love_swift #akibaswiftSwift 3 を書くときに知っておきたい API デザインガイドライン #love_swift #akibaswift
Swift 3 を書くときに知っておきたい API デザインガイドライン #love_swift #akibaswiftTomohiro Kumagai
 
第1回R勉強会@東京
第1回R勉強会@東京第1回R勉強会@東京
第1回R勉強会@東京Yohei Sato
 
Ⅰ. Rの基礎 2017
Ⅰ. Rの基礎 2017Ⅰ. Rの基礎 2017
Ⅰ. Rの基礎 2017wada, kazumi
 
わんくま同盟大阪勉強会#61
わんくま同盟大阪勉強会#61わんくま同盟大阪勉強会#61
わんくま同盟大阪勉強会#61TATSUYA HAYAMIZU
 
言語処理系入門3
言語処理系入門3言語処理系入門3
言語処理系入門3Kenta Hattori
 
知って得するWebで便利なpostgre sqlの3つの機能
知って得するWebで便利なpostgre sqlの3つの機能知って得するWebで便利なpostgre sqlの3つの機能
知って得するWebで便利なpostgre sqlの3つの機能Soudai Sone
 
ECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミングECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミングTanUkkii
 

Similaire à オブジェクト指向入門5 (20)

オブジェクト指向入門4
オブジェクト指向入門4オブジェクト指向入門4
オブジェクト指向入門4
 
たのしい関数型
たのしい関数型たのしい関数型
たのしい関数型
 
初心者講習会資料(Osaka.r#6)
初心者講習会資料(Osaka.r#6)初心者講習会資料(Osaka.r#6)
初心者講習会資料(Osaka.r#6)
 
R intro
R introR intro
R intro
 
RubyとJavaScriptに見る第一級関数
RubyとJavaScriptに見る第一級関数RubyとJavaScriptに見る第一級関数
RubyとJavaScriptに見る第一級関数
 
 
  
 
 
BNN CAMP vol.3  インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 2
BNN CAMP vol.3  インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 2BNN CAMP vol.3  インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 2
BNN CAMP vol.3  インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 2
 
Thinking in Cats
Thinking in CatsThinking in Cats
Thinking in Cats
 
機械学習
機械学習機械学習
機械学習
 
初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)
 
Pfi Seminar 2010 1 7
Pfi Seminar 2010 1 7Pfi Seminar 2010 1 7
Pfi Seminar 2010 1 7
 
Swift 3 を書くときに知っておきたい API デザインガイドライン #love_swift #akibaswift
Swift 3 を書くときに知っておきたい API デザインガイドライン #love_swift #akibaswiftSwift 3 を書くときに知っておきたい API デザインガイドライン #love_swift #akibaswift
Swift 3 を書くときに知っておきたい API デザインガイドライン #love_swift #akibaswift
 
第1回R勉強会@東京
第1回R勉強会@東京第1回R勉強会@東京
第1回R勉強会@東京
 
C# 9.0 / .NET 5.0
C# 9.0 / .NET 5.0C# 9.0 / .NET 5.0
C# 9.0 / .NET 5.0
 
Ⅰ. Rの基礎 2017
Ⅰ. Rの基礎 2017Ⅰ. Rの基礎 2017
Ⅰ. Rの基礎 2017
 
わんくま同盟大阪勉強会#61
わんくま同盟大阪勉強会#61わんくま同盟大阪勉強会#61
わんくま同盟大阪勉強会#61
 
言語処理系入門3
言語処理系入門3言語処理系入門3
言語処理系入門3
 
知って得するWebで便利なpostgre sqlの3つの機能
知って得するWebで便利なpostgre sqlの3つの機能知って得するWebで便利なpostgre sqlの3つの機能
知って得するWebで便利なpostgre sqlの3つの機能
 
はじめての「R」
はじめての「R」はじめての「R」
はじめての「R」
 
ECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミングECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミング
 

Plus de Kenta Hattori

オブジェクト指向入門2
オブジェクト指向入門2オブジェクト指向入門2
オブジェクト指向入門2Kenta Hattori
 
オブジェクト指向入門1
オブジェクト指向入門1オブジェクト指向入門1
オブジェクト指向入門1Kenta Hattori
 
オブジェクト指向入門10
オブジェクト指向入門10オブジェクト指向入門10
オブジェクト指向入門10Kenta Hattori
 
オブジェクト指向入門9
オブジェクト指向入門9オブジェクト指向入門9
オブジェクト指向入門9Kenta Hattori
 
オブジェクト指向入門8
オブジェクト指向入門8オブジェクト指向入門8
オブジェクト指向入門8Kenta Hattori
 
オブジェクト指向入門3
オブジェクト指向入門3オブジェクト指向入門3
オブジェクト指向入門3Kenta Hattori
 
ソフトウェア・テスト入門2
ソフトウェア・テスト入門2ソフトウェア・テスト入門2
ソフトウェア・テスト入門2Kenta Hattori
 
ソフトウェア・テスト入門1
ソフトウェア・テスト入門1ソフトウェア・テスト入門1
ソフトウェア・テスト入門1Kenta Hattori
 
ソフトウェア・テスト入門8
ソフトウェア・テスト入門8ソフトウェア・テスト入門8
ソフトウェア・テスト入門8Kenta Hattori
 
ソフトウェア・テスト入門7
ソフトウェア・テスト入門7ソフトウェア・テスト入門7
ソフトウェア・テスト入門7Kenta Hattori
 
ソフトウェア・テスト入門6
ソフトウェア・テスト入門6ソフトウェア・テスト入門6
ソフトウェア・テスト入門6Kenta Hattori
 
ソフトウェア・テスト入門5
ソフトウェア・テスト入門5ソフトウェア・テスト入門5
ソフトウェア・テスト入門5Kenta Hattori
 
ソフトウェア・テスト入門4
ソフトウェア・テスト入門4ソフトウェア・テスト入門4
ソフトウェア・テスト入門4Kenta Hattori
 
ソフトウェア・テスト入門3
ソフトウェア・テスト入門3ソフトウェア・テスト入門3
ソフトウェア・テスト入門3Kenta Hattori
 
アルゴリズムとデータ構造15
アルゴリズムとデータ構造15アルゴリズムとデータ構造15
アルゴリズムとデータ構造15Kenta Hattori
 
アルゴリズムとデータ構造14
アルゴリズムとデータ構造14アルゴリズムとデータ構造14
アルゴリズムとデータ構造14Kenta Hattori
 
アルゴリズムとデータ構造13
アルゴリズムとデータ構造13アルゴリズムとデータ構造13
アルゴリズムとデータ構造13Kenta Hattori
 
アルゴリズムとデータ構造12
アルゴリズムとデータ構造12アルゴリズムとデータ構造12
アルゴリズムとデータ構造12Kenta Hattori
 
アルゴリズムとデータ構造11
アルゴリズムとデータ構造11アルゴリズムとデータ構造11
アルゴリズムとデータ構造11Kenta Hattori
 
アルゴリズムとデータ構造10
アルゴリズムとデータ構造10アルゴリズムとデータ構造10
アルゴリズムとデータ構造10Kenta Hattori
 

Plus de Kenta Hattori (20)

オブジェクト指向入門2
オブジェクト指向入門2オブジェクト指向入門2
オブジェクト指向入門2
 
オブジェクト指向入門1
オブジェクト指向入門1オブジェクト指向入門1
オブジェクト指向入門1
 
オブジェクト指向入門10
オブジェクト指向入門10オブジェクト指向入門10
オブジェクト指向入門10
 
オブジェクト指向入門9
オブジェクト指向入門9オブジェクト指向入門9
オブジェクト指向入門9
 
オブジェクト指向入門8
オブジェクト指向入門8オブジェクト指向入門8
オブジェクト指向入門8
 
オブジェクト指向入門3
オブジェクト指向入門3オブジェクト指向入門3
オブジェクト指向入門3
 
ソフトウェア・テスト入門2
ソフトウェア・テスト入門2ソフトウェア・テスト入門2
ソフトウェア・テスト入門2
 
ソフトウェア・テスト入門1
ソフトウェア・テスト入門1ソフトウェア・テスト入門1
ソフトウェア・テスト入門1
 
ソフトウェア・テスト入門8
ソフトウェア・テスト入門8ソフトウェア・テスト入門8
ソフトウェア・テスト入門8
 
ソフトウェア・テスト入門7
ソフトウェア・テスト入門7ソフトウェア・テスト入門7
ソフトウェア・テスト入門7
 
ソフトウェア・テスト入門6
ソフトウェア・テスト入門6ソフトウェア・テスト入門6
ソフトウェア・テスト入門6
 
ソフトウェア・テスト入門5
ソフトウェア・テスト入門5ソフトウェア・テスト入門5
ソフトウェア・テスト入門5
 
ソフトウェア・テスト入門4
ソフトウェア・テスト入門4ソフトウェア・テスト入門4
ソフトウェア・テスト入門4
 
ソフトウェア・テスト入門3
ソフトウェア・テスト入門3ソフトウェア・テスト入門3
ソフトウェア・テスト入門3
 
アルゴリズムとデータ構造15
アルゴリズムとデータ構造15アルゴリズムとデータ構造15
アルゴリズムとデータ構造15
 
アルゴリズムとデータ構造14
アルゴリズムとデータ構造14アルゴリズムとデータ構造14
アルゴリズムとデータ構造14
 
アルゴリズムとデータ構造13
アルゴリズムとデータ構造13アルゴリズムとデータ構造13
アルゴリズムとデータ構造13
 
アルゴリズムとデータ構造12
アルゴリズムとデータ構造12アルゴリズムとデータ構造12
アルゴリズムとデータ構造12
 
アルゴリズムとデータ構造11
アルゴリズムとデータ構造11アルゴリズムとデータ構造11
アルゴリズムとデータ構造11
 
アルゴリズムとデータ構造10
アルゴリズムとデータ構造10アルゴリズムとデータ構造10
アルゴリズムとデータ構造10
 

Dernier

2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料Tokyo Institute of Technology
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2Tokyo Institute of Technology
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ssusere0a682
 
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~Kochi Eng Camp
 
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラムKochi Eng Camp
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料Takayuki Itoh
 

Dernier (6)

2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
 
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
 
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
 

オブジェクト指向入門5