【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 on Railsのフリーランスは高収入でおすすめ!

    Rubyができる方は多くはいないのが現状です。 プロジェクトは右肩上がりで増えているので、エンジニアが全く足りておりません。 Rubyの実務経験が1年以上ある方はフリーランスになることもできるので、ぜひご興味があればポテパンの無料カウンセリングをご利用下さいませ! Ruby案件に関する情報は下記にまとまっていますのでぜひご覧下さい。

    Ruby on Rails案件のイマがわかる!知って見つかる最適案件


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

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

    ポテパンフリーランス

    ポテパンフリーランス

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

    ポテパンキャリア

    ポテパンキャリア

    エンジニア職専門の転職エージェントです。ポテパンキャリアでは、技術のわかるエージェントがあなたの転職をサポートします。エージェント自身がエンジニアなので、あなたと同じ目線で仕事内容や今後のキャリアについて一緒に考えることができます。年収800円以上のハイスペック転職をご希望の方は「ポテパンプロフェッショナル」もご用意しておりますのでご利用下さいませ。

    ポテパンキャンプ

    ポテパンキャンプ

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



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

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

    この記事をシェア

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









    ABOUT US

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

    READ MORE