目次
classの作り方
instanceを作るためのnew
継承するためのextends
instance作成と同時に色々処理したいときの__construct()
instanceが継承元classのプロパティとメソッド取得するためのstatic
とself
コンビ
①instanceごとに好き勝手させないためのabstract
①instanceごとに好き勝手させないためのinterface
classの作り方
classとはプロパティ(変数)とメソッド(関数)をグルーピングしたもの。
変数や関数は、小規模開発の際は名前のつけたで管理できるが、人間なので、沢山できてくると関数や変数名を重複してうわがいてしまったり、やたら関数や変数名が長くなってしまったり、まったく関係ない処理を作りたいのに他の処理と競合してしまわないかと気を使ったりなど非効率なので、「商品情報を処理する変数と関数」「ユーザー情報を処理する変数と関数」「購入情報を処理する変数と関数」という処理に必要なプログラムをグルーピングして管理しやすくしよう!という先人の偉大な産物。
”設計書”と例えられることが多いが、”設計書”であるclass内のプロパティやメソッドを使うこともあり、この後出てくるが継承元にも継承先にもなるため、実態がないというイメージは持たない方が良い。
作り方
class
継承元class=全ての個人の共通処理
親class=
instance=個人
メモ
インスタンス化できない
通常クラスの継承は、メソッド名と処理内容含め継承できるため、重複処理の記述を激減できる
abstractクラスはメソッド名のみ継承で、処理内容は継承先でそれぞれ記述する、プログラム処理上メソッド名を統一したい、最低限必要な共通メソッド名なので漏れないでほしい
abstractクラスは処理を書かないので当然__constructはかけない、そのため
abstractクラス:最低限必要なメソッド名を定義(抽象的な定義)
通常クラス:abstractクラスから継承したメソッドの処理を記述+__constructでインスタンス化した時の共通処理を記述(具体的な処理内容の記述)
abstractクラス(抽象的な定義)
↓
通常クラス(具体的な処理内容の記述)
↓
インスタンス(決められたプロパティとメソッドの取得作業)