Your SlideShare is downloading. ×
0
大ざっぱにオブジェクト指向
大ざっぱにオブジェクト指向
大ざっぱにオブジェクト指向
大ざっぱにオブジェクト指向
大ざっぱにオブジェクト指向
大ざっぱにオブジェクト指向
大ざっぱにオブジェクト指向
大ざっぱにオブジェクト指向
大ざっぱにオブジェクト指向
大ざっぱにオブジェクト指向
大ざっぱにオブジェクト指向
大ざっぱにオブジェクト指向
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

大ざっぱにオブジェクト指向

1,504

Published on

Perlのオブジェクト指向について、すごく大ざっぱに解説していくよ!

Perlのオブジェクト指向について、すごく大ざっぱに解説していくよ!

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,504
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
9
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 大ざっぱにオブジェクト指向Perl Beginners #1 Lightning Talk @ytnobody
  • 2. オブジェクト指向プログラミング(OOP) って何?
  • 3. そもそもオブジェクトとは何か➢ データを持っている。 ● 年齢とか名前とか性別とか。。。➢ メソッドを持っている。 ● メソッドというのは、オブジェクトが持っているデータを活用し た関数の事➢ 何らかのクラスに属している ● 上記のメソッドは、このクラスに属することで初めて提供され る。
  • 4. クラスって何なのか➢ 基本的に金型みたいなものです。➢ データを収める受け口がある。➢ メソッドの実装がある。➢ クラス名がある。 package Animal; #クラス名はAnimal。 sub new { my ( $class, %args ) = @_; return bless { %args }, $class; } sub howl { my ( $self ) = @_; printf %s was howl as “%s”., $self->{name}, $self->{voice}; } 1;
  • 5. クラスとオブジェクトの関係って?➢ クラスにデータを渡して「インスタンス化」してやると、オ ブジェクトが出てくる。(ちょうど金型でクッキーの型抜きをしたかのように。) use Animal; #Animalクラスを使うことを明示。 # Animalクラスをインスタンス化。 my $a = Animal->new( name => Hamutaro, voice => Heke!, ); #howlメソッドを実行させる $a->howl; # Hamutaro was howl as “Heke!”.
  • 6. OOP、何がうれしいのか➢ よく使いそうなクラスをまとめておくことで、それらを再 利用することができる➢ 結果的に手早い実装が出来るようになっていく➢ クラスに処理がまとめられているので、割とデバッグし やすい
  • 7. OOPを手軽にしてくれる CPANモジュールたち
  • 8. Class::Accessor::Fastpackage Animal; #クラス名はAnimal。sub new { my ( $class, %args ) = @_; return bless { %args }, $class;}sub howl { my ( $self ) = @_; printf %s was howl as “%s”., $self->{name}, $self->{voice};}1; package Animal; use parent “Class::Accessor::Fast”; __PACKAGE__->mk_accessors( name, voice ); sub howl { これがこうなる my ( $self ) = @_; printf %s was howl as “%s”., $self->name, $self->voice; } 1;
  • 9. Module::Setup➢ クラスの雛形(CPAN形式)を作ってくれる[ytnobody@ytnobody work]$ module-setup OreoreCreating directory OreoreCreating Oreore/Makefile.PLCreating Oreore/MANIFEST.SKIP### 中略 ###[ytnobody@ytnobody work]$ cd Oreore/[ytnobody@ytnobody Oreore]$ ls -l合計 32-rw-rw-r-- 1 ytnobody ytnobody 104 2月 21 22:27 Changes-rw-rw-r-- 1 ytnobody ytnobody 531 2月 21 22:27 MANIFEST-rw-rw-r-- 1 ytnobody ytnobody 200 2月 21 22:27 MANIFEST.SKIP-rw-rw-r-- 1 ytnobody ytnobody 192 2月 21 22:27 Makefile.PL-rw-rw-r-- 1 ytnobody ytnobody 473 2月 21 22:27 READMEdrwxrwxr-x 2 ytnobody ytnobody 4096 2月 21 22:27 libdrwxrwxr-x 2 ytnobody ytnobody 4096 2月 21 22:27 tdrwxrwxr-x 2 ytnobody ytnobody 4096 2月 21 22:27 xt
  • 10. ほかにもたくさんあるけど 割愛
  • 11. まとめ➢ OOPは実はそこまで難しくない➢ OOPはお得 ● 再利用できるとか ● デバッグしやすいとか➢ CPANに登録されてるモジュールを使うと楽できる ● 大抵は、OOPで利用することで真価を発揮する。
  • 12. ご清聴ありがとうございました

×