Ruby
 Computer >> コンピューター >  >> プログラミング >> Ruby

Rubyで独自のクラスを作成する方法(明確に説明)

Rubyのクラスとは何ですか?

クラスは、オブジェクト指向プログラミング(OOP)の基本的な構成要素であり、オブジェクトを作成するための青写真を定義するのに役立ちます。

オブジェクトはクラスの製品です

では、オブジェクトとは何ですか?

オブジェクトは、独自のアイデンティティと独自のデータを持つ個々の「もの」です。

Book クラスは本を作成するための青写真になる可能性があります。

このクラスは、次のように、すべての本に共通する属性を定義します。

  • タイトル
  • 著者
  • ページ
  • など

個々の本はすべてオブジェクトであり、Bookのおかげで、そのような多くのオブジェクトを作成できます。 クラス。それがクラスを作成するポイントです。クラスはRubyアプリケーションの再利用可能な青写真です。

今日からOOPコードを書き始めることができるように、独自のクラスを作成する方法を学びます。

Rubyクラスを作成する方法

クラスを作成するための構文は次のようになります:

class Orange
end

注意

  • クラス名は大文字で始まります
  • classを使用します キーワード、次にend キーワード
  • 空のクラスはあまり役に立ちませんが、それでもオブジェクトを作成できます

クラスを作成する方法は他にもあります(Class.newなど)。 )、ただし、これらの方法は特別な状況でのみ役立ちます。

1つのクラス、多くのオブジェクト

クラスの主な用途は、メソッド、インスタンス変数、定数のコンテナであり、オブジェクトを作成できる青写真を形成することです。

newを使用してオブジェクトを作成できます メソッド。

このように

Orange.new

オブジェクトを作成するプロセスは「インスタンス化」として知られており、オブジェクトはクラスの「インスタンス」であると言います。

なぜオブジェクトを作成するのですか?

作成するすべてのオブジェクトは異なり、一意である

すべてのオブジェクトには独自のアイデンティティがあります。

Orangeを使用 クラス、すべてのorange 作成するオブジェクトには、独自の重み、原産国、品質などがあります。

Rubyクラスをより便利にする

クラスにインスタンスメソッドとインスタンス変数を追加し始めると、クラスはより便利になります。

メソッドは、クラスで実行できることです。

オレンジを絞ってジュースを作ることができます。

コード例は次のとおりです

class Orange
  def squeeze
    puts "Here's your juice!"
  end
end

orange = Orange.new
orange.squeeze

これらのメソッドは、オブジェクトのコマンドになります!

すべてのOrange 作成したオブジェクトは、このsqueezeにアクセスできます メソッドとそれはクラスを使用する利点の1つです。

インスタンス変数 クラスが知っていること

例:

class Orange
  def initialize
    @juice_available = 100
  end

  def squeeze
    @juice_available -= 50
  end
end

インスタンス変数は、@で始まるため、ローカル変数とは異なります。 シンボル。 attr_accessorを定義しない限り、クラス外でそれらにアクセスすることはできません。

それはどのクラスですか?

Rubyでオブジェクトを操作するときは、オブジェクトがどのクラスから作成されているかを知っておくと役立ちます。

このようにできます

"".class
# String

[].class
# Array

orange.class
# Orange (assuming orange = Orange.new)

なぜこれが役立つのですか?

メソッドは、Rubyで物事を実現する小さなエンジンです。

クラスを知っている場合は、使用可能なメソッドを見つけることができます(Google、riを使用) 、またはpry )、言い換えれば、オブジェクトがあなたのために何ができるかを発見することができます!

クラスの詳細

これは、クラスに関しては「氷山の一角」にすぎません。

詳細を知りたい場合は…

これらを読む

  • Ruby初期化メソッド
  • Attr_accessor、attr_reader、attr_writer
  • OOPでの継承
  • オブジェクト指向プログラミング

ところで、少なくともRubyではクラス自体もオブジェクトです🙂

概要

Rubyのクラス、クラスの作成方法、およびクラスが役立つ理由について学習しました。

より多くの人が楽しめるように、この記事を共有することを忘れないでください。

読んでくれてありがとう。


  1. 独自のシーザー暗号エンコーダーの書き方

    シーザー暗号について聞いたことがありますか ? ジュリアスシーザーはこのテクニックを使用して、敵からの秘密のメッセージを隠しました! シーザー暗号は、最も原始的な暗号化技術の1つです。 このシステムの背後にある主なアイデアは、文字を回転させることです。 x個のアルファベット上の位置 。 たとえば、x = 1の場合 、「A」は「B」になり、「C」は「D」になります。 では、これをコードでどのように実装するのでしょうか? よろしくお願いします。見た目ほど難しくはないことがわかりました。文字は数字(ASCIIコード)で表すことができるという事実を利用します。これにより、2つの数字を

  2. 独自のブラウザ拡張機能の作成方法 [サンプル プロジェクトを含む]

    この記事では、ブラウザーの拡張機能について説明します。拡張機能とは何か、どのように機能するのか、独自の拡張機能を構築する方法について説明します。 最後に、ボタンを 1 回クリックするだけで任意のコード スニペットをクリップボードにコピーできる独自の拡張機能を実際に作成します (非常に楽しい!)。 この記事を続けるには: JavaScript の基本的な知識が必要です。 Firefox ブラウザが必要です (または他のブラウザでも動作します) ブラウザ拡張機能とは? ブラウザ拡張機能は、ブラウザに追加するもので、ブラウザの容量を拡張してブラウジング エクスペリエンスを向上させます。