アウトプットを頑張る

初めてのプログラミング学習期間中の記録と、日頃読んでいる本をメモのアウトプットをがんばります。

【プログラミング学習】プログラミング言語 Ruby 基礎5

■プログラミング学習

f:id:yuma6128:20210727213843j:plain

これまでの学習で用いていた文字列や数値の値は、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アプリケーションの概要などについてを記事作成していきます。


■読書

f:id:yuma6128:20210710180648j:plain

最近読み始めた本は、私がとても好きな作者山口周さんの
外資系コンサルが教えるプロジェクトマネジメント 」についての読んでいます。
実践的な内容で、個人的には「プロジェクトの最初が肝心」と「キーマンを抑える」

一番印象に残ったのが、アイシン精機の事例が初めて見たときに、「価値観の共有」の大事さ、そしてそれがあることで主体的、自律的に動くPJTが出来上がる力を感じました。
読み終えてはいないため、また次回の記事でも感想を書いていきたいと思います。