【Ruby超入門コース】07.オブジェクト|オブジェクトは直訳するとモノです。オブジェクトってなんだ!?

Ruby超入門コース

この記事の執筆・監修

キノコード
キノコード

テクノロジーアンドデザインカンパニー合同会社のCEO。
日本最大級のプログラミング教育のYouTubeチャンネル「キノコード」や、プログラミング学習サービス「キノクエスト」を運営。
著書「あなたの仕事が一瞬で片付くPythonによる自動化仕事術」や、雑誌「日経ソフトウエア」や「シェルスクリプトマガジン」への寄稿など実績多数。

はじめに

こんにちは。キノコードです。
「【5分レッスン】Ruby超入門コース#07 オブジェクト」について説明します。

オブジェクトとは

まず最初に、オブジェクトとはなんでしょうか?
Rubyでは、すべての値がオブジェクトです。
例えば、3や8などの数値はオブジェクトですし、
「hello」という文字列もオブジェクトです。
次のレッスンで紹介する配列も、オブジェクトになります。
このオブジェクトは、メソッドと呼ばれるもので操作することができます。
このメソッドを使うことにより、1.23という数値の小数点以下を四捨五入したり、helloという文字列の文字数をカウントできたりします。
また、オブジェクトは、何らかのクラスというものに所属しています。
3や8いうオブジェクトは、Integerクラスというクラスに所属していますし、"hello"というオブジェクトはStringクラスというクラスに所属しています。
また、このオブジェクトは、クラスから作ることができます。
クラスやメソッドについては、のちのレッスンで詳しく解説しますが、
今は、オブジェクトは何らかのクラスに所属していて、オブジェクトはメソッドで操作できると理解していればよいです。

数値オブジェクト

まず、数値オブジェクトからみていきましょう。
数値オブジェクトの代表的なものとして、整数の「Integerオブジェクト」、小数の「Floatオブジェクト」があります。
コードを書いていきましょう。

p 10

10という数値もオブジェクトです。
これは整数なのでIntegerオブジェクトです。
こう書くと10が表示できるはずです。
実行してみます。10が表示されました。

p 10.div(5)
p 10.remainder(3)

最初に、このオブジェクトは、メソッドと呼ばれるもので操作することができるといいました。
割り算メソッドはdivです。丸括弧の中に割る数値を記述しましょう。
5を記述してみます。10 ÷ 5は2です。
また、割った余りを算出するメソッドもあります。
remainderメソッドです。
丸括弧の中に割る数値を記述しましょう。
3を記述してみます。10 ÷ 3は3あまり1なので、1が表示されるはずです。
実行してみましょう。
2と1が表示れされました。
このようにオブジェクトには、オブジェクトを操作するメソッドがあります。

p 10.class
p 10.0.class

オブジェクトが所属しているクラスを調べるには、classメソッドで調べることができます。
10と10.0という数値にドットclassをつけてみましょう。
10は整数、10.0は小数点数です。整数のintergerと小数のfloatが表示されるはずです。
実行してみましょう。予想通りの結果です。

文字列オブジェクト

puts "Good morning".index("d")
puts "Good Morning".length

次に、文字列オブジェクトについてみていきたいと思います。
文字列オブジェクトはStringクラスです。
文字列オブジェクトは、レッスン5でもみたように、ダブルクオテーションで括れば良いです。
この文字列オブジェクトにも、メソッドがあります。
例えば、文字を探すindexというメソッドがあります。
dという文字を探してみましょう。
プログラミングでは、基本的には0からカウントします。したがって、1番目は0、2番目は1、3番目は2です。
dは4番目にあるので、3と表示されるはずです。
他にも、文字列の長さをカウントするlengthというメソッドもあります。
こちらは引数はいりません。半角スペースも含めて12文字あるので12と表示されるはずです。
クラスも調べてみましょう。先ほどみたように、ドットclassでオッケーです。Stringと表示されるはずです。
実行してみましょう。
5と12、Stringが表示されました。

trueとfalse

最後に、trueとfalseについてです。
まず、trueとfalseとはなんでしょうか?
trueとは正しい、falseは誤りという意味です。
例えば、10と1では10の方が大きいです。
つまり、「10>1」は正しいです。
正しいので「true」となります。
10>1を表示させるとtrueが表示されます。
また、Trueは、Trueクラスに所属します。
逆に「10<1」は誤りです。これはfalseとなります。falseはFlaseクラスに所属します。
コードを書いていきましょう。

p (10>1)
p (10>1).class

p (10<1)
p (10<1).class

10大なり1を表示させてみましょう。
また、これのクラスを表示させてみましょう。
trueの場合は「TrueClass」falseの場合は「falseClass」となります。
trueとTrueClassと表示されるはずです。
実行してみます。
予想通りの結果となりました。

p (10>1)
p (10>1).class

また同様に不等号を逆にしたものをやってみましょう。
実行してみます。
今後は反対に、falseとFalseClassが表示されました。

p (10<1)
p (10<1).class

aという変数に10を代入。bという変数に1を代入しましょう。
a>bは正しいです。
結果をbool01に代入してみましょう。
Trueが代入されいるはずです。
bool01のデータ型も確認してみましょう。
実行してみます。
「True」と、ブール型である「boolean」が表示されました。

未経験からはじめるPython学習「キノクエスト」 キノクエスト
  • スキルアップしたいけど何からはじめればよいかわからない…
  • プログラミングスクールに入りたいけど料金が高い…
  • プログラミングを学んでも業務やキャリアに活かせるか不安…

キノクエストは、このような悩みを持つ方にぴったりのプログラミング学習サービスです。
国内最大級のプログラミング学習系YouTubeチャンネル「キノコード」が提供しているから、未経験者にもわかりやすく質の高い学習体験を実感していただけます。

キノクエスト