SlideShare a Scribd company logo
1 of 68
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
あなたと Java
〜今すぐアンインストール〜
Nomuken - @nomuken
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
つらみ
● 90 …………分
※ 直していただきました
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
つらみ
● 初心者いないっぽくないですか
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
Agenda
1. 自己紹介
2. Java のアンインストール方法(重要)
3. オブジェクト指向の話(くどい)
4. Java での書き方
5. このセッションの後に何をするべきか
6. ちょこっと発展的な話
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
自己紹介 (@nomuken)
● C 科に所属
● 好きなものは ArchLinux
● なんか怖い人が来ると聞いて昨日オブジェクト指向勉強した
● Java 歴 -32768 日
● プログラミング初心者
→証明として 1 年次配当のコンピュータ基礎 I (プログラミン
グの初歩の初歩)を落としている
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
……なので今日は
初心者がやるので非常に簡単な話をします
(間違ったことも言うかもです)
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
0. Java のアンインストール方法
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
そもそも Java とは
● 「 30 billion devices run Java 」
→ 30 億のデバイスで動く「さいきょう の げんご」
→一節には「 30 億 ( ドル ) のデバイスしか動かない」と言われ
ている(要出典)
● 人間を苦しめる闇の言語
→( I 科)サバプロ,( C 科)アルゴリズム
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
真面目な話では
● 仮想マシンを PC 上に作りその上で動くもの
→だから一度コンパイルしたら, Mac でも Linux でも Windows
でも動く
● 大量のライブラリを持っている巨大な言語
→だから他からライブラリを入手する必要がない
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
ともあれ,アンインストール
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
よくある OS ( ArchLinux )の場合
1. ターミナルを開きます
2. yaourt もしくは pacman から消します
→ yaourt : % yaourt -Rdn java-common
→ pacman : # pacman -Rdn java-common
( Oracle な場合→ archlinux-java )
3. お手持ちの Java の本を図書館とか寄贈とかして手元から消し
ます
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
次に多い OS ( Ubuntu )の場合
● ターミナルを起動します
● apt-get から消します
→ $ sudo apt-get purge default-jre
(Oracle な場合は知りません )
● お手持ちの Java に関するものを手元から消します
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
終わり
( openjre ……なら消す理由ないのだが )
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
1. くどいオブジェクト指向の話
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
避けては通れぬオブジェクト指向
● 2 年次配当の以下の教科は Java
インターネットプログラミング(失笑)
基礎プログラミング
● 不十分な教育
→オブジェクト指向の説明不足(インターネッツプログラミン
グ)
→基礎プログラミングは数値計算が主
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
避けては通れぬオブジェクト指向
● I 科はしっかりやるっぽいです
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
……そもそもオブジェクトとは
物
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
ではオブジェクト指向とは?
● プログラミングの処理(とか)を「物」として考える手法
→人間の世界で使われてるから簡単?
→でゎなぃ
● それではどのように考えるべきか
→単に慣習であると思うべき
→ ……これを使えば良いプログラム ではない!
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
閑話休題
(んなことどうでも良い)
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
オブジェクト指向の定義
● 言語によって考え方が違っている
→例えば Ruby では全てがオブジェクトと考える
(オブジェクトの定義はこの後で)
→ Java は全てがオブジェクトではない
● オブジェクト指向を考えた人からすれば重要なのは「メッセー
ジング」
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
オブジェクト指向であることの条件
● 「隠蔽性(カプセル化)」……だけ!!
→ 物事全てを隠す.自分の持っているデータも隠すし,どう
やっているかも教えない
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
…… つまり?
● 以下のようなプログラムを考える
#include<stdio.h>
int main(void){
int a,b,result;
printf("ab =>");
scanf("%d %d",&a,&b);
result=a+b;
printf("ans=>%dn",result);
return 0;
}
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
……つまり
● 入力された値の和を出力するだけのプログラム
→ 2 つの値の和を知りたいときはいつでもこれを実行すれば良
い.
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
ちょっと待って!
● 必要としているのは結果だけという事実
→その処理に関しては見てもしょうがない
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
理想図
何か
3,9
12
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
……つまり
「多くの機能をプログラムの中に含めるときに,機能を自分で作
るではなく,既にある機能から結果だけを得る」
既にある機能
= 隠蔽(カプセル化)したもの
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
やった!終わり!!
● でゎなぃ
→ オブジェクトって?
→メッセージングって?
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
オブジェクトの定義
● 「データ」と「機能」を持つ
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
メッセージング
● 会話のようなもの.
→オブジェクトに「値を渡す」
→オブジェクトから「値が返ってくる」
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
……あれ?もしかして ?
オブジェクト
3,9
12
メッセージング
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
完
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
で,終わりたかったが
● 自分のセッションでは Java の話だった
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
2. Java での書き方
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
Java でオブジェクト指向
● 実は「クラス」がキーワード
→オブジェクトの設計図の役割を持つ
……→こんな感じのもの「クラスベース」とか言ったり
● クラスからオブジェクトが生成される
→これをインスタンス化という
→ということは設計図を元に別の個体が存在する
● さらにオブジェクトを強める別の性質が追加されている
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
……ところでクラスとは
● 設計図以上のなんでもない
→例えば RPG のキャラクターについて考えてみる.
→キャラクターは冒険者という意味では共通だが,職も違うし
能力値も違う
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
……えっと
● クラスはあくまで「概念」的な存在
→実際に使うにはデータを決めなくてはならない
……(概念の概念もあるんですが )
● ここから実体を作る
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
……つまり
ボーカロイド
名前 = 初音ミク 名前 = 亞北ネル
名前を持っている
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
さて
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
Java ……でのオブジェクト指向では
さらに以下が追加されている
1. 継承
2. 多態性
これらはオブジェクト = 物という意味を強めている
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
継承とは
● 日本語そのままの意味→「引き継ぐ」
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
……えっと
とある「オブジェクト」からその全て(データと機能)を引き継
いだ「オブジェクト」を作れるということ!!
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
……えっと
● 継承を使えばツンデレだけを実装してミクの機能を利用できる
1.歌える
2.可愛い
継承!!
1.歌える
2.可愛い
3.ツンデレ(← New! )
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
_人人人人人人人人人人_
> 逆に分かりづらい <
 ̄ Y^Y^Y^Y^Y^Y^Y^Y^Y  ̄
……他の人説明してるし,いいよね
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
多態性
● 多態性とは「どのようなものにでも適したものになれる」とい
うこと.(原義的には違うかも?)
● Java ではそれとして 2 つの機能がある
オーバーライド(上書き)
オーバーロード(多重定義)
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
この 2 ……つの説明をしたいのだが
● C 科では前期配当のコン基礎 I では「関数」を扱わないので説
……明できない
● ……しかし,説明しないとサボったと言われそう
● …… やるか
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
関数とは
● C 言語において関数とは今までの説明での「機能」にあたる
→ C ……言語では機能という言葉を使いたくはないのだが
● (実は printf ……も関数なのだが )
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
関数の実例
#include<stdio.h>
int sum(int a,int b){
returna+b;
}
int main(void){
int num1=3,num2=9,result;
result=sum(num1,num2);
printf("%dn",result);
return0;
}
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
C での関数のルール
● 予約語は使えない( if,int,void,return..... )
= 同名の関数は作れない(例では sum をもうひとつ作るのは無
理)
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
で, Java にもっていく
● Java では関数ではなく「メソッド」
● そういえば以下の 2 つの話であった
オーバーライド(上書き)
オーバーロード(多重定義)
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
オーバーライド(上書き)
● 継承した機能(メソッド)を書き換える(上書き)することが
できる.
歌う 歌う
可愛らしく真面目に歌う ダルそうに歌う
継承
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
オーバーロード(多重定義)
● ……同名の機能(メソッド)を作れる(語弊があるが )
→ 与えられるものによって同名の処理を依頼しても,正しい処
理をできる
歌う( KAITO に)
ダルそうに歌う
歌う(レンに)
ちょっと照れながら歌う
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
で,ようやくこの章の本題に入れるわけで
● この章の本題→ Java での書き方
● とりあえず,実際にコードを読んでみましょう
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
の前に模式図こんな感じです
1) 機能
歌う
踊る
2)データ
年齢
身長
1) 機能
歌う
踊る
レンを想う
2)データ
年齢
身長
寝た回数
HatsuneMiku クラス AkitaNeru クラス
継承
…… 本当はクラス図を使うのですがそちらは分かりづらいので
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
Demo
(手元に欲しい? github:nomuken/TDU_OOP_study )
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
軽くポイント
● 継承→ extends というので表している
● オーバーロード→単純に同名のメソッドを作り,引数を得るこ
とにより別物になっている
● オーバーライド→踊るメソッドを再定義している
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
と,注意!
● このコードはこの章の理解のために作りました
→実はカプセル化(隠蔽)してないんです.
(アクセスの話はもっとできるようになってから)
● それ以前にプログラマとして失格なコード
● 謎の package
→ これは include ……に近いものと思えば (本当は違う)
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
3. このセッションの後に何をすべきか
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
今まで解説したこと
● 全てではない
→ Java での前にオブジェクト指向とは何かに力を入れてみた
→なので,省略に省略を重ねた
→(作るの疲れた)
● オブジェクト指向について
→ これも全てではない
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
Java をやる上で次に知るべきこと
● ライブラリ理解
● データ構造理解
● アクセス
● デザインパターン
● コーディング規則
● Java のダメなところ
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
Any question......?
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
そういえば
● Agenda 全部やってませんね
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
4. ちょっと発展的な話
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
betterClass の話
● なんかサンプルで示したコードをそのままにするのは恥という
か嫌なので,しっかり書いておきました.
Git : https://github.com/nomuken/TDU_OOP_study
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
個人的 Java のダメなところ
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
何故 Java はダメなのか
● 製品には完全に向かない
→仮想マシンで解釈し直すので,デコンパイルしやすい
……→技術の漏洩?(法律的にはダメなのだが )
● 多いセキュリティホール
→しょうが無いといえばそこまでだが,多くの危険性が指摘さ
れている
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
何故 Java はダメなのか
● 安定性と速度の問題
→ Java はやっぱり重い
→安定性にも疑問がある
● 実質的に Android 位しか良さがない?
→ Web 系を Java で書くのはほぼ罰ゲーム,デスクトップはデ
コンパイルの容易性を考えると微妙.
→ Jenkins が Java ……であるとはいえ
オブジェクト指向勉強会 ( 基礎 )
TwitterHashTag - #OOP_study
何故 Java はダメなのか
● 言語が巨大すぎる
→だからデバッグが大変(自分のコードが悪いのですが)
→ Javadoc が必須

More Related Content

What's hot

Phpではじめるオブジェクト指向(公開用)
Phpではじめるオブジェクト指向(公開用)Phpではじめるオブジェクト指向(公開用)
Phpではじめるオブジェクト指向(公開用)VOYAGE GROUP
 
設計してますか?
設計してますか?設計してますか?
設計してますか?ke-m kamekoopa
 
良質なコードを高速に書くコツ
良質なコードを高速に書くコツ良質なコードを高速に書くコツ
良質なコードを高速に書くコツShunji Konishi
 
Start!! Ruby
Start!! RubyStart!! Ruby
Start!! Rubymitim
 
データモデリング入門【実習編】-astah*を使って、TMの手法を使う-
データモデリング入門【実習編】-astah*を使って、TMの手法を使う-データモデリング入門【実習編】-astah*を使って、TMの手法を使う-
データモデリング入門【実習編】-astah*を使って、TMの手法を使う-Koichi Inami
 
データモデリング入門-astah*を使って、TMの手法を使う-
データモデリング入門-astah*を使って、TMの手法を使う-データモデリング入門-astah*を使って、TMの手法を使う-
データモデリング入門-astah*を使って、TMの手法を使う-Koichi Inami
 
今さら聞けないDiとspring
今さら聞けないDiとspring今さら聞けないDiとspring
今さら聞けないDiとspring土岐 孝平
 
クイズ・Python勝ち抜きバトル pycon jp_2017
クイズ・Python勝ち抜きバトル pycon jp_2017クイズ・Python勝ち抜きバトル pycon jp_2017
クイズ・Python勝ち抜きバトル pycon jp_2017Motohiro Ueki
 
Web技術勉強会 20110514
Web技術勉強会 20110514Web技術勉強会 20110514
Web技術勉強会 20110514龍一 田中
 
メタプログラミングってなに?
メタプログラミングってなに?メタプログラミングってなに?
メタプログラミングってなに?KazukiWata
 
Swift の3大プロトコルを眺めてみる #love_swift
Swift の3大プロトコルを眺めてみる #love_swiftSwift の3大プロトコルを眺めてみる #love_swift
Swift の3大プロトコルを眺めてみる #love_swiftTomohiro Kumagai
 
PFI成果発表会2014発表資料 Where Do You Look?
PFI成果発表会2014発表資料 Where Do You Look?PFI成果発表会2014発表資料 Where Do You Look?
PFI成果発表会2014発表資料 Where Do You Look?Hokuto Kagaya
 
[最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
[最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」 [最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
[最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」 Yuki Arase
 
Rdbms qpstudy-okuno
Rdbms qpstudy-okunoRdbms qpstudy-okuno
Rdbms qpstudy-okunoMikiya Okuno
 
ふるたに流プログラミング学習法
ふるたに流プログラミング学習法ふるたに流プログラミング学習法
ふるたに流プログラミング学習法Kazuma Furutani
 

What's hot (19)

Phpではじめるオブジェクト指向(公開用)
Phpではじめるオブジェクト指向(公開用)Phpではじめるオブジェクト指向(公開用)
Phpではじめるオブジェクト指向(公開用)
 
設計してますか?
設計してますか?設計してますか?
設計してますか?
 
良質なコードを高速に書くコツ
良質なコードを高速に書くコツ良質なコードを高速に書くコツ
良質なコードを高速に書くコツ
 
Start!! Ruby
Start!! RubyStart!! Ruby
Start!! Ruby
 
データモデリング入門【実習編】-astah*を使って、TMの手法を使う-
データモデリング入門【実習編】-astah*を使って、TMの手法を使う-データモデリング入門【実習編】-astah*を使って、TMの手法を使う-
データモデリング入門【実習編】-astah*を使って、TMの手法を使う-
 
データモデリング入門-astah*を使って、TMの手法を使う-
データモデリング入門-astah*を使って、TMの手法を使う-データモデリング入門-astah*を使って、TMの手法を使う-
データモデリング入門-astah*を使って、TMの手法を使う-
 
今さら聞けないDiとspring
今さら聞けないDiとspring今さら聞けないDiとspring
今さら聞けないDiとspring
 
クイズ・Python勝ち抜きバトル pycon jp_2017
クイズ・Python勝ち抜きバトル pycon jp_2017クイズ・Python勝ち抜きバトル pycon jp_2017
クイズ・Python勝ち抜きバトル pycon jp_2017
 
Web技術勉強会 20110514
Web技術勉強会 20110514Web技術勉強会 20110514
Web技術勉強会 20110514
 
getstartedc#_2
getstartedc#_2getstartedc#_2
getstartedc#_2
 
メタプログラミングってなに?
メタプログラミングってなに?メタプログラミングってなに?
メタプログラミングってなに?
 
凝集度と責務
凝集度と責務凝集度と責務
凝集度と責務
 
Swift の3大プロトコルを眺めてみる #love_swift
Swift の3大プロトコルを眺めてみる #love_swiftSwift の3大プロトコルを眺めてみる #love_swift
Swift の3大プロトコルを眺めてみる #love_swift
 
言語処理学会へ遊びに行ったよ
言語処理学会へ遊びに行ったよ言語処理学会へ遊びに行ったよ
言語処理学会へ遊びに行ったよ
 
PFI成果発表会2014発表資料 Where Do You Look?
PFI成果発表会2014発表資料 Where Do You Look?PFI成果発表会2014発表資料 Where Do You Look?
PFI成果発表会2014発表資料 Where Do You Look?
 
[最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
[最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」 [最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
[最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
 
Qaシステム解説
Qaシステム解説Qaシステム解説
Qaシステム解説
 
Rdbms qpstudy-okuno
Rdbms qpstudy-okunoRdbms qpstudy-okuno
Rdbms qpstudy-okuno
 
ふるたに流プログラミング学習法
ふるたに流プログラミング学習法ふるたに流プログラミング学習法
ふるたに流プログラミング学習法
 

Viewers also liked

デジタルメディア創作部勉強会「オブジェクト指向入門1」
デジタルメディア創作部勉強会「オブジェクト指向入門1」デジタルメディア創作部勉強会「オブジェクト指向入門1」
デジタルメディア創作部勉強会「オブジェクト指向入門1」Hokuto Tateyama
 
バージョン管理#01 -Subversion編-
バージョン管理#01 -Subversion編-バージョン管理#01 -Subversion編-
バージョン管理#01 -Subversion編-hakoika-itwg
 
オブジェクト指向ワークショップ 201507版
オブジェクト指向ワークショップ 201507版オブジェクト指向ワークショップ 201507版
オブジェクト指向ワークショップ 201507版Mao Ohnishi
 
だいたい30分で分かるオブジェクト指向
だいたい30分で分かるオブジェクト指向だいたい30分で分かるオブジェクト指向
だいたい30分で分かるオブジェクト指向Anto Mioyama
 
F流 『オブジェクト指向の考え方の基礎の基礎』 ~ソフトウェア開発の原則編~
F流『オブジェクト指向の考え方の基礎の基礎』~ソフトウェア開発の原則編~F流『オブジェクト指向の考え方の基礎の基礎』~ソフトウェア開発の原則編~
F流 『オブジェクト指向の考え方の基礎の基礎』 ~ソフトウェア開発の原則編~Fujio Kojima
 
関数型言語とオブジェクト指向言語(序章)
関数型言語とオブジェクト指向言語(序章)関数型言語とオブジェクト指向言語(序章)
関数型言語とオブジェクト指向言語(序章)tadaaki hayashi
 
ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数
ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数
ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数Satoru Kodaira
 
06 オブジェクト指向の基礎
06 オブジェクト指向の基礎06 オブジェクト指向の基礎
06 オブジェクト指向の基礎文樹 高橋
 
オブジェクト指向プログラミング再入門
オブジェクト指向プログラミング再入門オブジェクト指向プログラミング再入門
オブジェクト指向プログラミング再入門Ryo Miyake
 
第2回 モデリング勉強会
第2回 モデリング勉強会第2回 モデリング勉強会
第2回 モデリング勉強会hakoika-itwg
 
第1回 モデリング勉強会
第1回 モデリング勉強会第1回 モデリング勉強会
第1回 モデリング勉強会hakoika-itwg
 
第8回勉強会 開発プロセス 「計画ゲーム~ふりかえり」
第8回勉強会 開発プロセス 「計画ゲーム~ふりかえり」第8回勉強会 開発プロセス 「計画ゲーム~ふりかえり」
第8回勉強会 開発プロセス 「計画ゲーム~ふりかえり」hakoika-itwg
 

Viewers also liked (12)

デジタルメディア創作部勉強会「オブジェクト指向入門1」
デジタルメディア創作部勉強会「オブジェクト指向入門1」デジタルメディア創作部勉強会「オブジェクト指向入門1」
デジタルメディア創作部勉強会「オブジェクト指向入門1」
 
バージョン管理#01 -Subversion編-
バージョン管理#01 -Subversion編-バージョン管理#01 -Subversion編-
バージョン管理#01 -Subversion編-
 
オブジェクト指向ワークショップ 201507版
オブジェクト指向ワークショップ 201507版オブジェクト指向ワークショップ 201507版
オブジェクト指向ワークショップ 201507版
 
だいたい30分で分かるオブジェクト指向
だいたい30分で分かるオブジェクト指向だいたい30分で分かるオブジェクト指向
だいたい30分で分かるオブジェクト指向
 
F流 『オブジェクト指向の考え方の基礎の基礎』 ~ソフトウェア開発の原則編~
F流『オブジェクト指向の考え方の基礎の基礎』~ソフトウェア開発の原則編~F流『オブジェクト指向の考え方の基礎の基礎』~ソフトウェア開発の原則編~
F流 『オブジェクト指向の考え方の基礎の基礎』 ~ソフトウェア開発の原則編~
 
関数型言語とオブジェクト指向言語(序章)
関数型言語とオブジェクト指向言語(序章)関数型言語とオブジェクト指向言語(序章)
関数型言語とオブジェクト指向言語(序章)
 
ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数
ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数
ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数
 
06 オブジェクト指向の基礎
06 オブジェクト指向の基礎06 オブジェクト指向の基礎
06 オブジェクト指向の基礎
 
オブジェクト指向プログラミング再入門
オブジェクト指向プログラミング再入門オブジェクト指向プログラミング再入門
オブジェクト指向プログラミング再入門
 
第2回 モデリング勉強会
第2回 モデリング勉強会第2回 モデリング勉強会
第2回 モデリング勉強会
 
第1回 モデリング勉強会
第1回 モデリング勉強会第1回 モデリング勉強会
第1回 モデリング勉強会
 
第8回勉強会 開発プロセス 「計画ゲーム~ふりかえり」
第8回勉強会 開発プロセス 「計画ゲーム~ふりかえり」第8回勉強会 開発プロセス 「計画ゲーム~ふりかえり」
第8回勉強会 開発プロセス 「計画ゲーム~ふりかえり」
 

Similar to オブジェクト指向勉強会(基礎)

学び方を学ぶことを学ぶ
学び方を学ぶことを学ぶ学び方を学ぶことを学ぶ
学び方を学ぶことを学ぶHiroyuki Ito
 
わんくま東京#32 「null ヤバイのでなんとかする」
わんくま東京#32 「null ヤバイのでなんとかする」わんくま東京#32 「null ヤバイのでなんとかする」
わんくま東京#32 「null ヤバイのでなんとかする」Takeshi Kiriya
 
最強オブジェクト指向言語 JavaScript 再入門!
最強オブジェクト指向言語 JavaScript 再入門!最強オブジェクト指向言語 JavaScript 再入門!
最強オブジェクト指向言語 JavaScript 再入門!Yuji Nojima
 
デザイナーのためのPHP講座 for WordPress (初級)
デザイナーのためのPHP講座  for WordPress (初級)デザイナーのためのPHP講座  for WordPress (初級)
デザイナーのためのPHP講座 for WordPress (初級)佑 小田垣佑
 
Alluren of prototype-based OOP
Alluren of prototype-based OOPAlluren of prototype-based OOP
Alluren of prototype-based OOPazuma satoshi
 
仕事でも Groovy を使おう!
仕事でも Groovy を使おう!仕事でも Groovy を使おう!
仕事でも Groovy を使おう!Oda Shinsuke
 
PHPとJavaScriptの噺
PHPとJavaScriptの噺PHPとJavaScriptの噺
PHPとJavaScriptの噺Shogo Kawahara
 
プログラミングのお勉強としてscratchをさわってみた
プログラミングのお勉強としてscratchをさわってみたプログラミングのお勉強としてscratchをさわってみた
プログラミングのお勉強としてscratchをさわってみたHirokiIwanaga
 
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」tokyorgirls
 
(超初心者向け)オブジェクト指向とC#
(超初心者向け)オブジェクト指向とC#(超初心者向け)オブジェクト指向とC#
(超初心者向け)オブジェクト指向とC#ssusera3d157
 
TypeScript でオブジェクト指向プログラミング
TypeScript でオブジェクト指向プログラミングTypeScript でオブジェクト指向プログラミング
TypeScript でオブジェクト指向プログラミングkoji kobayashi
 
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ ver1.1
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ ver1.124時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ ver1.1
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ ver1.1聡 中川
 
Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~CHY72
 
Pythonによる機械学習入門〜基礎からDeep Learningまで〜
Pythonによる機械学習入門〜基礎からDeep Learningまで〜Pythonによる機械学習入門〜基礎からDeep Learningまで〜
Pythonによる機械学習入門〜基礎からDeep Learningまで〜Yasutomo Kawanishi
 
今日からできる構造学習(主に構造化パーセプトロンについて)
今日からできる構造学習(主に構造化パーセプトロンについて)今日からできる構造学習(主に構造化パーセプトロンについて)
今日からできる構造学習(主に構造化パーセプトロンについて)syou6162
 
(Pythonで作って学ぶ) Youtube の動画リストを作るアプリの開発 
第2回
(Pythonで作って学ぶ) Youtube の動画リストを作るアプリの開発 
第2回(Pythonで作って学ぶ) Youtube の動画リストを作るアプリの開発 
第2回
(Pythonで作って学ぶ) Youtube の動画リストを作るアプリの開発 
第2回Project Samurai
 
[DL Hacks]Visdomを使ったデータ可視化
[DL Hacks]Visdomを使ったデータ可視化[DL Hacks]Visdomを使ったデータ可視化
[DL Hacks]Visdomを使ったデータ可視化Deep Learning JP
 

Similar to オブジェクト指向勉強会(基礎) (20)

学び方を学ぶことを学ぶ
学び方を学ぶことを学ぶ学び方を学ぶことを学ぶ
学び方を学ぶことを学ぶ
 
わんくま東京#32 「null ヤバイのでなんとかする」
わんくま東京#32 「null ヤバイのでなんとかする」わんくま東京#32 「null ヤバイのでなんとかする」
わんくま東京#32 「null ヤバイのでなんとかする」
 
最強オブジェクト指向言語 JavaScript 再入門!
最強オブジェクト指向言語 JavaScript 再入門!最強オブジェクト指向言語 JavaScript 再入門!
最強オブジェクト指向言語 JavaScript 再入門!
 
デザイナーのためのPHP講座 for WordPress (初級)
デザイナーのためのPHP講座  for WordPress (初級)デザイナーのためのPHP講座  for WordPress (初級)
デザイナーのためのPHP講座 for WordPress (初級)
 
資料
資料資料
資料
 
Alluren of prototype-based OOP
Alluren of prototype-based OOPAlluren of prototype-based OOP
Alluren of prototype-based OOP
 
仕事でも Groovy を使おう!
仕事でも Groovy を使おう!仕事でも Groovy を使おう!
仕事でも Groovy を使おう!
 
PHPとJavaScriptの噺
PHPとJavaScriptの噺PHPとJavaScriptの噺
PHPとJavaScriptの噺
 
プログラミングのお勉強としてscratchをさわってみた
プログラミングのお勉強としてscratchをさわってみたプログラミングのお勉強としてscratchをさわってみた
プログラミングのお勉強としてscratchをさわってみた
 
Debug Hacks - 第4回つくらぐ勉強会
Debug Hacks - 第4回つくらぐ勉強会Debug Hacks - 第4回つくらぐ勉強会
Debug Hacks - 第4回つくらぐ勉強会
 
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
 
(超初心者向け)オブジェクト指向とC#
(超初心者向け)オブジェクト指向とC#(超初心者向け)オブジェクト指向とC#
(超初心者向け)オブジェクト指向とC#
 
TypeScript でオブジェクト指向プログラミング
TypeScript でオブジェクト指向プログラミングTypeScript でオブジェクト指向プログラミング
TypeScript でオブジェクト指向プログラミング
 
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ ver1.1
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ ver1.124時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ ver1.1
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ ver1.1
 
Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~
 
Pythonによる機械学習入門〜基礎からDeep Learningまで〜
Pythonによる機械学習入門〜基礎からDeep Learningまで〜Pythonによる機械学習入門〜基礎からDeep Learningまで〜
Pythonによる機械学習入門〜基礎からDeep Learningまで〜
 
今日からできる構造学習(主に構造化パーセプトロンについて)
今日からできる構造学習(主に構造化パーセプトロンについて)今日からできる構造学習(主に構造化パーセプトロンについて)
今日からできる構造学習(主に構造化パーセプトロンについて)
 
(Pythonで作って学ぶ) Youtube の動画リストを作るアプリの開発 
第2回
(Pythonで作って学ぶ) Youtube の動画リストを作るアプリの開発 
第2回(Pythonで作って学ぶ) Youtube の動画リストを作るアプリの開発 
第2回
(Pythonで作って学ぶ) Youtube の動画リストを作るアプリの開発 
第2回
 
Tokyo r30 beginner
Tokyo r30 beginnerTokyo r30 beginner
Tokyo r30 beginner
 
[DL Hacks]Visdomを使ったデータ可視化
[DL Hacks]Visdomを使ったデータ可視化[DL Hacks]Visdomを使ったデータ可視化
[DL Hacks]Visdomを使ったデータ可視化
 

More from nomuken

CTFトラックの報告的なもの(公開版)
CTFトラックの報告的なもの(公開版)CTFトラックの報告的なもの(公開版)
CTFトラックの報告的なもの(公開版)nomuken
 
Dendai is Secure?
Dendai is Secure?Dendai is Secure?
Dendai is Secure?nomuken
 
スコアサーバーに起きた脆弱性で学ぶWebセキュリティ
スコアサーバーに起きた脆弱性で学ぶWebセキュリティスコアサーバーに起きた脆弱性で学ぶWebセキュリティ
スコアサーバーに起きた脆弱性で学ぶWebセキュリティnomuken
 
メインスライド
メインスライドメインスライド
メインスライドnomuken
 
TDU CTFのお話
TDU CTFのお話TDU CTFのお話
TDU CTFのお話nomuken
 
mlabCTFの話
mlabCTFの話mlabCTFの話
mlabCTFの話nomuken
 
自作CTFについて考えてみる
自作CTFについて考えてみる自作CTFについて考えてみる
自作CTFについて考えてみるnomuken
 

More from nomuken (8)

CTFトラックの報告的なもの(公開版)
CTFトラックの報告的なもの(公開版)CTFトラックの報告的なもの(公開版)
CTFトラックの報告的なもの(公開版)
 
Dendai is Secure?
Dendai is Secure?Dendai is Secure?
Dendai is Secure?
 
スコアサーバーに起きた脆弱性で学ぶWebセキュリティ
スコアサーバーに起きた脆弱性で学ぶWebセキュリティスコアサーバーに起きた脆弱性で学ぶWebセキュリティ
スコアサーバーに起きた脆弱性で学ぶWebセキュリティ
 
メインスライド
メインスライドメインスライド
メインスライド
 
TDU CTFのお話
TDU CTFのお話TDU CTFのお話
TDU CTFのお話
 
Tductf
TductfTductf
Tductf
 
mlabCTFの話
mlabCTFの話mlabCTFの話
mlabCTFの話
 
自作CTFについて考えてみる
自作CTFについて考えてみる自作CTFについて考えてみる
自作CTFについて考えてみる
 

Recently uploaded

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 

Recently uploaded (9)

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 

オブジェクト指向勉強会(基礎)

  • 1. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study あなたと Java 〜今すぐアンインストール〜 Nomuken - @nomuken
  • 2. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study つらみ ● 90 …………分 ※ 直していただきました
  • 3. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study つらみ ● 初心者いないっぽくないですか
  • 4. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study Agenda 1. 自己紹介 2. Java のアンインストール方法(重要) 3. オブジェクト指向の話(くどい) 4. Java での書き方 5. このセッションの後に何をするべきか 6. ちょこっと発展的な話
  • 5. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study 自己紹介 (@nomuken) ● C 科に所属 ● 好きなものは ArchLinux ● なんか怖い人が来ると聞いて昨日オブジェクト指向勉強した ● Java 歴 -32768 日 ● プログラミング初心者 →証明として 1 年次配当のコンピュータ基礎 I (プログラミン グの初歩の初歩)を落としている
  • 6. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study ……なので今日は 初心者がやるので非常に簡単な話をします (間違ったことも言うかもです)
  • 7. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study 0. Java のアンインストール方法
  • 8. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study そもそも Java とは ● 「 30 billion devices run Java 」 → 30 億のデバイスで動く「さいきょう の げんご」 →一節には「 30 億 ( ドル ) のデバイスしか動かない」と言われ ている(要出典) ● 人間を苦しめる闇の言語 →( I 科)サバプロ,( C 科)アルゴリズム
  • 9. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study 真面目な話では ● 仮想マシンを PC 上に作りその上で動くもの →だから一度コンパイルしたら, Mac でも Linux でも Windows でも動く ● 大量のライブラリを持っている巨大な言語 →だから他からライブラリを入手する必要がない
  • 10. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study ともあれ,アンインストール
  • 11. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study よくある OS ( ArchLinux )の場合 1. ターミナルを開きます 2. yaourt もしくは pacman から消します → yaourt : % yaourt -Rdn java-common → pacman : # pacman -Rdn java-common ( Oracle な場合→ archlinux-java ) 3. お手持ちの Java の本を図書館とか寄贈とかして手元から消し ます
  • 12. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study 次に多い OS ( Ubuntu )の場合 ● ターミナルを起動します ● apt-get から消します → $ sudo apt-get purge default-jre (Oracle な場合は知りません ) ● お手持ちの Java に関するものを手元から消します
  • 13. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study 終わり ( openjre ……なら消す理由ないのだが )
  • 14. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study 1. くどいオブジェクト指向の話
  • 15. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study 避けては通れぬオブジェクト指向 ● 2 年次配当の以下の教科は Java インターネットプログラミング(失笑) 基礎プログラミング ● 不十分な教育 →オブジェクト指向の説明不足(インターネッツプログラミン グ) →基礎プログラミングは数値計算が主
  • 16. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study 避けては通れぬオブジェクト指向 ● I 科はしっかりやるっぽいです
  • 17. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study ……そもそもオブジェクトとは 物
  • 18. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study ではオブジェクト指向とは? ● プログラミングの処理(とか)を「物」として考える手法 →人間の世界で使われてるから簡単? →でゎなぃ ● それではどのように考えるべきか →単に慣習であると思うべき → ……これを使えば良いプログラム ではない!
  • 19. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study 閑話休題 (んなことどうでも良い)
  • 20. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study オブジェクト指向の定義 ● 言語によって考え方が違っている →例えば Ruby では全てがオブジェクトと考える (オブジェクトの定義はこの後で) → Java は全てがオブジェクトではない ● オブジェクト指向を考えた人からすれば重要なのは「メッセー ジング」
  • 21. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study オブジェクト指向であることの条件 ● 「隠蔽性(カプセル化)」……だけ!! → 物事全てを隠す.自分の持っているデータも隠すし,どう やっているかも教えない
  • 22. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study …… つまり? ● 以下のようなプログラムを考える #include<stdio.h> int main(void){ int a,b,result; printf("ab =>"); scanf("%d %d",&a,&b); result=a+b; printf("ans=>%dn",result); return 0; }
  • 23. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study ……つまり ● 入力された値の和を出力するだけのプログラム → 2 つの値の和を知りたいときはいつでもこれを実行すれば良 い.
  • 24. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study ちょっと待って! ● 必要としているのは結果だけという事実 →その処理に関しては見てもしょうがない
  • 25. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study 理想図 何か 3,9 12
  • 26. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study ……つまり 「多くの機能をプログラムの中に含めるときに,機能を自分で作 るではなく,既にある機能から結果だけを得る」 既にある機能 = 隠蔽(カプセル化)したもの
  • 27. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study やった!終わり!! ● でゎなぃ → オブジェクトって? →メッセージングって?
  • 28. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study オブジェクトの定義 ● 「データ」と「機能」を持つ
  • 29. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study メッセージング ● 会話のようなもの. →オブジェクトに「値を渡す」 →オブジェクトから「値が返ってくる」
  • 30. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study ……あれ?もしかして ? オブジェクト 3,9 12 メッセージング
  • 31. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study 完
  • 32. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study で,終わりたかったが ● 自分のセッションでは Java の話だった
  • 33. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study 2. Java での書き方
  • 34. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study Java でオブジェクト指向 ● 実は「クラス」がキーワード →オブジェクトの設計図の役割を持つ ……→こんな感じのもの「クラスベース」とか言ったり ● クラスからオブジェクトが生成される →これをインスタンス化という →ということは設計図を元に別の個体が存在する ● さらにオブジェクトを強める別の性質が追加されている
  • 35. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study ……ところでクラスとは ● 設計図以上のなんでもない →例えば RPG のキャラクターについて考えてみる. →キャラクターは冒険者という意味では共通だが,職も違うし 能力値も違う
  • 36. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study ……えっと ● クラスはあくまで「概念」的な存在 →実際に使うにはデータを決めなくてはならない ……(概念の概念もあるんですが ) ● ここから実体を作る
  • 37. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study ……つまり ボーカロイド 名前 = 初音ミク 名前 = 亞北ネル 名前を持っている
  • 38. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study さて
  • 39. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study Java ……でのオブジェクト指向では さらに以下が追加されている 1. 継承 2. 多態性 これらはオブジェクト = 物という意味を強めている
  • 40. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study 継承とは ● 日本語そのままの意味→「引き継ぐ」
  • 41. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study ……えっと とある「オブジェクト」からその全て(データと機能)を引き継 いだ「オブジェクト」を作れるということ!!
  • 42. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study ……えっと ● 継承を使えばツンデレだけを実装してミクの機能を利用できる 1.歌える 2.可愛い 継承!! 1.歌える 2.可愛い 3.ツンデレ(← New! )
  • 43. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study _人人人人人人人人人人_ > 逆に分かりづらい <  ̄ Y^Y^Y^Y^Y^Y^Y^Y^Y  ̄ ……他の人説明してるし,いいよね
  • 44. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study 多態性 ● 多態性とは「どのようなものにでも適したものになれる」とい うこと.(原義的には違うかも?) ● Java ではそれとして 2 つの機能がある オーバーライド(上書き) オーバーロード(多重定義)
  • 45. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study この 2 ……つの説明をしたいのだが ● C 科では前期配当のコン基礎 I では「関数」を扱わないので説 ……明できない ● ……しかし,説明しないとサボったと言われそう ● …… やるか
  • 46. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study 関数とは ● C 言語において関数とは今までの説明での「機能」にあたる → C ……言語では機能という言葉を使いたくはないのだが ● (実は printf ……も関数なのだが )
  • 47. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study 関数の実例 #include<stdio.h> int sum(int a,int b){ returna+b; } int main(void){ int num1=3,num2=9,result; result=sum(num1,num2); printf("%dn",result); return0; }
  • 48. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study C での関数のルール ● 予約語は使えない( if,int,void,return..... ) = 同名の関数は作れない(例では sum をもうひとつ作るのは無 理)
  • 49. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study で, Java にもっていく ● Java では関数ではなく「メソッド」 ● そういえば以下の 2 つの話であった オーバーライド(上書き) オーバーロード(多重定義)
  • 50. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study オーバーライド(上書き) ● 継承した機能(メソッド)を書き換える(上書き)することが できる. 歌う 歌う 可愛らしく真面目に歌う ダルそうに歌う 継承
  • 51. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study オーバーロード(多重定義) ● ……同名の機能(メソッド)を作れる(語弊があるが ) → 与えられるものによって同名の処理を依頼しても,正しい処 理をできる 歌う( KAITO に) ダルそうに歌う 歌う(レンに) ちょっと照れながら歌う
  • 52. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study で,ようやくこの章の本題に入れるわけで ● この章の本題→ Java での書き方 ● とりあえず,実際にコードを読んでみましょう
  • 53. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study の前に模式図こんな感じです 1) 機能 歌う 踊る 2)データ 年齢 身長 1) 機能 歌う 踊る レンを想う 2)データ 年齢 身長 寝た回数 HatsuneMiku クラス AkitaNeru クラス 継承 …… 本当はクラス図を使うのですがそちらは分かりづらいので
  • 54. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study Demo (手元に欲しい? github:nomuken/TDU_OOP_study )
  • 55. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study 軽くポイント ● 継承→ extends というので表している ● オーバーロード→単純に同名のメソッドを作り,引数を得るこ とにより別物になっている ● オーバーライド→踊るメソッドを再定義している
  • 56. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study と,注意! ● このコードはこの章の理解のために作りました →実はカプセル化(隠蔽)してないんです. (アクセスの話はもっとできるようになってから) ● それ以前にプログラマとして失格なコード ● 謎の package → これは include ……に近いものと思えば (本当は違う)
  • 57. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study 3. このセッションの後に何をすべきか
  • 58. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study 今まで解説したこと ● 全てではない → Java での前にオブジェクト指向とは何かに力を入れてみた →なので,省略に省略を重ねた →(作るの疲れた) ● オブジェクト指向について → これも全てではない
  • 59. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study Java をやる上で次に知るべきこと ● ライブラリ理解 ● データ構造理解 ● アクセス ● デザインパターン ● コーディング規則 ● Java のダメなところ
  • 60. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study Any question......?
  • 61. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study
  • 62. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study そういえば ● Agenda 全部やってませんね
  • 63. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study 4. ちょっと発展的な話
  • 64. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study betterClass の話 ● なんかサンプルで示したコードをそのままにするのは恥という か嫌なので,しっかり書いておきました. Git : https://github.com/nomuken/TDU_OOP_study
  • 65. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study 個人的 Java のダメなところ
  • 66. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study 何故 Java はダメなのか ● 製品には完全に向かない →仮想マシンで解釈し直すので,デコンパイルしやすい ……→技術の漏洩?(法律的にはダメなのだが ) ● 多いセキュリティホール →しょうが無いといえばそこまでだが,多くの危険性が指摘さ れている
  • 67. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study 何故 Java はダメなのか ● 安定性と速度の問題 → Java はやっぱり重い →安定性にも疑問がある ● 実質的に Android 位しか良さがない? → Web 系を Java で書くのはほぼ罰ゲーム,デスクトップはデ コンパイルの容易性を考えると微妙. → Jenkins が Java ……であるとはいえ
  • 68. オブジェクト指向勉強会 ( 基礎 ) TwitterHashTag - #OOP_study 何故 Java はダメなのか ● 言語が巨大すぎる →だからデバッグが大変(自分のコードが悪いのですが) → Javadoc が必須