【Ruby入門】クラスをコーディング(1) classを作る
  • facebookページ
  • twitterページ
  • 2017.12.18

    【Ruby入門】クラスをコーディング(1) classを作る

    クラスに関する前2記事「【Ruby入門】クラスとオブジェクト」「【Ruby入門】クラスの継承、オーバーライド 」を読んでいただいた方々は、なんとなく釈然としないはずです。

    それもそのはず、ソースコードが一切出てきていないからです。

    コードを実際に見ないと、プログラマ的に納得できないですよね。

    よって本記事では、今まで学習してきたことをソースコードにしてみます。

    前2記事と本記事を行ったり来たりして、理解を深めてくださいね!

    クラスの基本形 def 〜 end

    ではまず、クラスの基本形からいきましょう。

    以下のとおりです。

    これ以降、今までさんざん出てきたBookクラスを順に作っていきましょう。

    まずはBookクラスの枠組みを作ります。

    コンストラクタとインスタンスメソッド

    コンストラクタとインスタンスメソッドを作りましょう。

    前記事では変数はたくさん出てきましたが、本のタイトルと著者だけに省略します。

    (実行しても何も返ってきません。)

    Rubyでは、インスタンス直後に自動的に呼ばれるメソッドを、initializeメソッドといいます。前記事でコンストラクタとして解説したものと同じです。

    インスタンス変数は@で始まります。

    mytitle = “” と myauthor = “” は、インスタンス化のときに引数を受け取り、それをインスタンス変数に格納する記述です。しかし何も受け取らなければ空文字を入れるという意味になります。

    インスタンスメソッドdisplayを追加してみました。インスタンス化したあとに呼び出せるメソッドです。後ほど解説します

    アクセサメソッド

    インスタンスの外部からインスタンス内部の変数へ直接アクセスせず、アクセサメソッド経由でアクセスするのが一般的です。

    よって、アクセサメソッドを追加してみましょう。

    もちろんこれでもよいのですが、もう少しスマートに書きましょう。

    attr_accessorメソッドを使いました。

    アクセサメソッドの種類は以下のとおりです。仕様に応じて適切なものを選んでください。

     

    • attr_reader 参照のみ可
    • attr_writer 変更のみ可
    • attr_accessor 参照と変更の両方可

     

    クラスメソッド、定数

    クラスメソッドは、クラスそのものに紐づくメソッドです。インスタンスとは無関係です。

    早速使いましょう。何回インスタンス化されたかを管理する変数countを定義します。

    頭に@を2つ付けて変数名を書くと、クラス変数の定義になります。

    クラスメソッド定義の部分「class << count」は、以下のように書くことも可能です。

    クラス変数は、外からもアクセスできます。このように宣言します。

    呼び出すときは以下のとおりです。コロンを2つつなげます。

    [実行結果]

    メソッドのアクセス修飾子を定義する

    メソッドによっては他からアクセスさせてはいけないものがあります。

    Bookクラスでいうと、インスタンス変数を初期化するメソッドなどです。

    そのようなメソッドは、他から呼ばれないようにprivateにしましょう。

    privateを書いた以降に定義したメソッドは、すべてprivateになります。

    特定のメソッドだけprivate指定したい場合は、以下のようにします。

    ここまでの完成形

    今までの内容でできたクラスの完成形は以下のとおりです。じっくりご覧ください。

    まとめ

    本記事では、Rubyのクラスの基本を解説しました。

    ここまで来るのは大変だったでしょう?お疲れさまでした!

    ただ、残念ながら大切な話はまだ続きます。

    もう少しお付き合いください!


    他のRuby入門記事はこちら

    【Ruby入門】Rubyとは何か?学習方法や将来性まで考えました!

    【Ruby入門】Ruby on Railsをやってみよう!

    【Ruby入門】環境構築(Mac/Win)

    【Ruby入門】nokogiriでスクレイピング

    【Ruby入門】データベース

    【Ruby入門】gemとライブラリ

    【Ruby入門】エラーと例外処理

    【Ruby入門】モジュール(module)とMix-in

    【Ruby入門】Procクラスとラムダ(lambda)

    【Ruby入門】ブロック

    【Ruby入門】メソッド

    【Ruby入門】クラスをコーディング(2) オブジェクト指向

    【Ruby入門】クラスをコーディング(1) classを作る

    【Ruby入門】クラスの継承、オーバーライド

    【Ruby入門】クラスとオブジェクト

    【Ruby入門】ディレクトリ(フォルダ)の作成、削除

    【Ruby入門】ファイルの移動、コピー、削除

    【Ruby入門】入力と出力

    【Ruby入門】Rubyの正規表現

    【Ruby入門】正規表現で置換する

    【Ruby入門】正規表現とは何か?

    【Ruby入門】文字列の結合などの操作

    【Ruby入門】CSVの基本と操作

    【Ruby入門】JSONの基本と操作

    【Ruby入門】乱数(Random)などの数値計算用クラスや端数処理

    【Ruby入門】日付の基本と操作(Time, Date)

    【Ruby入門】数値の数え上げ「upto」と四捨五入

    【Ruby入門】文字列の標準ライブラリnkfとヒアドキュメント

    【Ruby入門】数値の基本とメソッド (timesメソッド他)

    【Ruby入門】ハッシュ(hash)をeachで取り出す!その他ハッシュの応用に

    【Ruby入門】ハッシュ(hash)とシンボルの基本

    【Ruby入門】文字列の基本と表示メソッド

    【Ruby入門】Rubyの繰り返しを極める!様々な繰り返しのバリエーション

    【Ruby入門】最初はこれだけ!まずは手を動かしたい人のRuby入門

    【Ruby入門】ifとelseについて

    【Ruby入門】配列と操作(基本編)

    【Ruby入門】eachメソッドの使い方と応用例


    ポテパンが提供するサービスについて

    本メディア「ポテパンスタイル」を運営する株式会社ポテパンは、エンジニアキャリア領域で複数サービスを提供しています。

    ポテパンフリーランス

    ポテパンフリーランス

    フリーランスエンジニアの方に高単価案件をご紹介しております。弊社ではフリーランス案件を常時300件ほど保有しており、その中からあなたに適した案件をご案内いたします。また、これから独立してフリーランスになる方の無料個別相談も承っております。フリーランスになった後の案件獲得方法やお金面(税金や保険など)についてお答えいたします!

    ポテパンキャリア

    ポテパンキャリア

    エンジニア職専門の転職エージェントです。ポテパンキャリアでは、技術のわかるエージェントがあなたの転職をサポートします。エージェント自身がエンジニアなので、あなたと同じ目線で仕事内容や今後のキャリアについて一緒に考えることができます。

    ポテパンキャンプ

    ポテパンキャンプ

    ポテパンキャンプでは、RubyにてゼロからオリジナルのECサイトを作り上げてる3ヶ月間の実践型カリキュラムを提供しております。すでに本スクールの卒業生は、エンジニア職として様々な企業様に就職しております。なお、本スクールは受講料10万円と他社スクールに比べ格安となっており、またポテパンからご紹介させていただいた企業へ就職が決まった場合は、全額キャッシュバックいたします。



    株式会社ポテパンは、企業とエンジニアの最適なマッチングを追求しています。気になるサービスがあれば、ぜひ覗いてみてください!

    ポテキャンバナー ポテキャリバナー

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア

    関連ワード

    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE