Rubyプログラミングの基礎まとめ(第5回)オブジェクト・クラス・メソッドとは

Rubyのオブジェクト・クラス・メソッド

前回までは配列について書いてきましたが、今回は用語について書いてみます(ノ)・ω・(ヾ)

オブジェクト(Object)とは

オブジェクト(Object)は文字通り「物(モノ)」を指します。例えばこの数字データは数値のオブジェクトです。

100

この文字データは文字列のオブジェクトです。

"こんにちは"

また、それぞれのオブジェクトには種類があります。それがクラスです。

クラス(class)とは

オブジェクトには「数値」「文字列」等の種類がありますが、この種類をクラス(class)といいます。数値のオブジェクトは正確には「数値クラスのオブジェクト」であり、文字列のブジェクとは「文字列クラス」のオブジェクトです。

オブジェクト クラスの種類 クラス名
1 整数 Integer
1.0 浮動小数点数 Float
"こんにちは" 文字列 String
[1,2,3,4,5] 配列 Array
1..10 範囲 Range

※実際にはFixnumまたはBignumと表示されます。理由は後述します。

クラス名を調べる方法

classメソッドを使います(・ω・)ノ

x=10
puts(x.class)

Fixnum

整数クラスについて

整数クラスは正確にはFixnumBignumに分かれますので、ある一定以上の整数になると自動的にBignumに切り替わります。試してみますと、

x=1
loop do
break if x.class==Bignum
puts("#{x} ←#{x.class}")
x*=10 #これは x=x*10 と等しい
end
puts("#{x} ←#{x.class}に切り替わりました")

1 ←Fixnum
10 ←Fixnum
100 ←Fixnum
1000 ←Fixnum
10000 ←Fixnum
100000 ←Fixnum
1000000 ←Fixnum
10000000 ←Fixnum
100000000 ←Fixnum
1000000000 ←Fixnum
10000000000 ←Fixnum
100000000000 ←Fixnum
1000000000000 ←Fixnum
10000000000000 ←Fixnum
100000000000000 ←Fixnum
1000000000000000 ←Fixnum
10000000000000000 ←Fixnum
100000000000000000 ←Fixnum
1000000000000000000 ←Fixnum
10000000000000000000 ←Bignumに切り替わりました

となります。よほどでかい整数でない限り大抵はFixnumですね(・ω・)

なお、整数クラス・浮動小数点数クラスは共に数値クラスのサブクラスになります。つまり数値クラスでもあり、整数クラスでもあるということです(・ω・)ノ

メソッドとは

メソッドは処理をひとまとめにしたものくらいの意味合いです。正確に定義すると混乱してしまうので深追いはしない(・ω・)

以下は使えそうなメソッドをひと通りまとめました(ノ)・ω・(ヾ)

整数・浮動小数点数の変換

to_i メソッド(浮動小数点→整数)、to_f メソッド(整数→小数点)を使います(・ω・)

x=1
puts(x)
y=x.to_f
puts(y)
z=y.to_i
puts(z)

1
1.0
1

なお、浮動小数点数を整数に変換すると、小数点以下は切り捨てとなります(´・ω・`)

x=9.99
puts(x.to_i)

3

四捨五入する

小数点以下の切り捨てではなく四捨五入とするには round メソッドを使います。

a=3.49999
b=3.5
puts(a.round)
puts(b.round)

3
4

0かどうか判定する

zero? メソッドを使います。数値0ならtrue、0以外の数値ならfalseとなります。

クラス オブジェクト zero?メソッド
数値 0 true
数値 1 false
文字列 "0" エラー

x=0
y=1
puts(x.zero?)
puts(y.zero?)

true
false

0でないかの判定

nonzero? メソッドを使います。 数値0ならnil(オブジェクトが存在しないことを示す)、0以外の数値ならその数値となります。

クラス オブジェクト nonzero?メソッド
数値 0 nil
数値 1 1
文字列 "0" エラー

irbで「0.nonzero?」を実行するとnillが返されます。

ひとまずここまでにして次は文字列の操作について書きます(ノ)・ω・(ヾ)

コメントを残す

サブコンテンツ

このページの先頭へ