■プログラミング学習
これまでの学習で用いていた文字列や数値の値は、Rubyにはじめから用意された値を使っていました。
クラスとインスタンスを使って、新しい種類の値を自分で設定が出来るようになることを学びました。
・クラス
値の元となる共通のルールを定義する。
共通の属性と処理(メソッド)を決める。
設計図のような概念的なもので実体がないものになる。
```
class クラス名
#変数やメソッドの定義
end
```
クラスを元にして作られるデータのこと。
設計図を元に作られたもの。
newメソッドを実行して、生成をする
```
# インスタンスを生成し変数で扱う
変数名 = クラス名.new
```
・メソッド
データが持つ動作となるメソッドの定義について学んでいった。
このあたり混乱をしていたので、自分で書いたノートなど確認しながら
アウトプットしていく。
クラスとインスタンスでデータを作る場合は、それぞれの動作つまりは「メソッド」をあらかじめ決めておく。
メソッドはクラスに定義をするが、それぞれクラスメソッドとインスタンスメソッドをそれぞれまとめていく。
・インスタンスメソッド
データによって、変わる処理の場合はインスタンスメソッドで定義をする。
「インスタンスメソッドを定義したクラス」から生成されるインスタンスが使用できます。
定義の方法は下記手法を使う
```
class クラス名
def メソッド名
# 処理
end
end
```
呼び出し方法は
```
インスタンス名.メソッド名(引数)
```
ここで注意をしたいのが、(引数)をする場合は、スコープの範囲が、
メソッドの外で定義した変数をメソッドの中で使えない
メソッドの中で定義した変数はそのメソッドの中でしか使えない
というルールのため、ここで特殊な変数を使用する。
・インスタンス変数
データが持つ属性を定義する変数。
属性とは、みんなが持っている共通の項目でそれに当てはまる値を
属性値と呼ぶ。
```
人で例えると
属性 【性別 身長 体重】
属性値【男性 170cm 60kg】
```
インスタンス変数を定義することで、インスタンス全体の属性を共通にし
その中の属性値を個別に設定ができる。
インスタンス変数は、クラス内のメソッドの中で、
変数名の始めにアットマーク@を1つつけて定義します。
```
class クラス名
def メソッド名
@変数名 = 値 #インスタンス変数
end
end
```
・クラスメソッド
クラスメソッドを定義したクラス自身が使用することができ、クラスで共通の情報を使った処理に使用します。
定義方法は下記
```
class クラス名
def self.メソッド名
# 処理
end
end
```
クラスメソッドの呼び出し
```
クラス名.メソッド名(引数)
```
・initializeメソッド
インスタンスの生成と同時に、実行して欲しい処理が出てくるときに使用するメソッド。
Rubyのクラスから生成されるすべてのインスタンスはクラスに記述がなくても
自動でinitializeメソッドが実行されている。
このときは基本的には何も処理行っていない。
インスタンスの生成時に処理を行いたい場合に、定義をして実行する。
定義の方法は下記
```
class クラス名
def initialize
# インスタンス生成したときに実行される処理(以下は例)
puts "クラス名のインスタンスが生成されました"
end
end
インスタンス = クラス名.new # initializeメソッドが呼ばれ文字が表示される
```
ここまでがRubyの基礎学習の内容の振り返りになります。
かなりつまんでいるので、自分自身の理解を深めるために
気になったところをピックアップして、自分なりにまとめています。
まだ完全にひとに說明ができるほど理解をしていないため、
定期的に振り返って学習をして行きたいと思います。
次の記事からWEBアプリケーションの概要などについてを記事作成していきます。
■読書
最近読み始めた本は、私がとても好きな作者山口周さんの
「外資系コンサルが教えるプロジェクトマネジメント 」についての読んでいます。
実践的な内容で、個人的には「プロジェクトの最初が肝心」と「キーマンを抑える」
一番印象に残ったのが、アイシン精機の事例が初めて見たときに、「価値観の共有」の大事さ、そしてそれがあることで主体的、自律的に動くPJTが出来上がる力を感じました。
読み終えてはいないため、また次回の記事でも感想を書いていきたいと思います。