7月30日 学習記録
本日学習した内容
-
1:クラス
クラスとは、プログラミングにおいて使用する「もの」の設計図のようなものである。
ここでいう「もの」とは、現実世界における「もの」とほぼ同意義、つまり食べ物、車、服などを想像するとよい。
クラスを定義するには、「class クラス名 ~ end」と書く。
以下では、Menuという名前のクラスを定義している例。
※クラス名は大文字から始めること。
-
2:インスタンス変数について
1で作成したクラスに情報を持たせるには、「attr_accessor シンボル」のように記述する。
この時追加した情報を「インスタンス変数」と呼ぶ。
以下では、1で作成したMenuクラスにname、priceという2つのインスタンス変数を定義している例。
-
3:インスタンス
インスタンスとは、クラス(設計図)を元に作成された「もの」の事である。
「変数名 = クラス名.new」とすることで、クラスから作成したインスタンスを変数に代入し、使用できる。
以下は、Menuクラスからインスタンスを作成し、変数menu1に代入する例。
-
4:インスタンス変数を使う
インスタンス変数を使用するには、「インスタンスを代入した変数名.インスタンス変数名」と記述する。
以下は、Menuクラスのインスタンス変数nameに「カツ丼」を代入し、コンソールに出力する例。
-
5:インスタンスメソッド
インスタンスメソッドとは、クラス内に記述しインスタンスに対して呼び出すメソッドのこと。
インスタンスメソッドを呼び出す為には、「インスタンス変数名.インスタンスメソッド名」と記述する。
以下は、クラスMenuに定義したインスタンスメソッドinfoを呼び出す例。
※「self」は、自分自身のクラスの変数である事を示す。
インスタンスメソッドは引数を設定することもできる。
以下は、注文の個数を引数として受け取り、合計金額を求めるインスタンスメソッドを呼び出す例。(3個以上注文した場合は100円引きとする。)
-
6:initializeメソッド
initializeメソッドとは、クラスからインスタンスを生成した直後に実行したい処理を記述するメソッドである。
JavaやJavaScriptを既習の人は、「コンストラクタ」とほぼ同じものだと考えればよい。
定義するには、「def initialize ~ end」と記述する。
これまでのメソッドと同様に、引数を設定することもできる。
initializeメソッドに引数を渡す場合、インスタンス作成時に「クラス名(引数名)」と記述する。
以下は、initializeメソッドにメニュー名と値段を引数として渡し、infoメソッドでメニュー名と値段を出力している。
今日のエラー
インスタンス変数を定義する際に、「:」を変数の前に付けていなかった為、エラーが出た。