はじめに
今週は chast 式 Ruby がついに最終回!! 前回の授業と同様にして、class 化について学習を行った
class 化
サンプル用のプログラムを元に class についての学習を行っていく
class についての詳しい説明はここを確認する
サンプルプログラム
1 class Greeter
2 def initialize
3 @name = gets_name
4 puts_hello
5 end
6
7 def puts_hello #salute
8 puts "Hello #{@name}."
9 end
10
11 def gets_name
12 name = ARGV[0] || 'world'
13 return name.capitalize
14 end
15 end
16
17 Greeter.new
プログラム解説
class の中の関数はメソッドと呼ばれる物になる。本プログラムでは、
- initialize()
- puts_hello()
- gets_name()
が相当する
Ruby では、class の外でメソッドを呼びだす為には、Greeter.new のように「class 名.メソッド名」のようにして扱う事ができる
class の継承について
class には、親の class からメソッドなどをクラス変数などを継承する事ができる。サンプルプログラムを見ながら学習をしていく
サンプルプログラム
1 # inherited class
2 class Greeter < String
3 def hello
4 "Hello #{self}."
5 end
6 end
7
8 # extend class
9 class String
10 def hello
11 "Hello #{self}."
12 end
13 end
プログラム解説
今回は String class が存在しているがこの class を Greeter に継承している。これによって、Greeter は String のメソッドを扱う事ができる
注意
プログラムを書く時に 初め から class や継承などを意識してプログラムを書かなくていい
emacs 小ネタ
ダブルクォーテーション
授業中に文字列を作成しようとダブルクォーテーションを使う場面があったがダブルクォーテーションを初めから自分で閉じていたが、emacs には 色 で文字列 を判別してくれる機能がある
普通はいきなりカッコやダブルクォーテーションを始めから閉じるのではなく一つ一つ閉じていく のが基本になる
参考文献
- source ~/Downloads/git/grad_members_20f/members/taiseiyo/memos/class11.org