プログラミング、フリーダイビング、ブロックチェーンのブログ

プログラミング道場

【PHP入門】クラスの基本とインスタンス

更新日:

記事の内容


この記事では、PHPのクラスとインスタンスについて説明します。
簡単なサンプルも書くので、これさえ読めばPHPのクラスはバッチリです。
PHPのバージョンは、7系です。

オブジェクト指向

まずはオブジェクト指向(しこう)について説明します。
phpはオブジェクト指向のプログラミング言語です。
RubyやJavaといった言語もオブジェクト指向です。
他には手続き型や関数型という言語もあります。
興味がある人は、その違いも調べてみて下さい。

初学者にとっては、「オブジェクト指向って何?」という感じだと思います。
私もそうでしたし、最初は誰しもが疑問に持ちます。

オブジェクト指向とは、簡単に言うと、オブジェクトという一つの型(設計図)を決めることによって、いつでもその型から同じものを複製したり、あるいは似たものを複製することが出来ます。
プログラムを効率的に書くための仕組みと考えて下さい。

オブジェクト指向の三大要素

今すぐに全てを理解する必要はありませんが、オブジェクト指向の三大原則を頭の片隅に入れておきましょう。
将来、プログラミングの設計をする時に、きっと役に立つはずです。

カプセル化

カプセル化とは簡単にいうと、オブジェクトの中身を隠蔽して、できるだけ他のプログラムから干渉されないようにする仕組みです。
影響範囲が小さい、疎結合なプログラミングを心がけることで、大規模で安全なシステム構築に繋がります。

継承

継承とは、プログラムの再利用性を高める仕組みです。
共通部分を使い回す仕組みともいえます。

ポリモフィズム(多態性)

言葉だけで説明しようとすると、ちょっと難しいかもしれません。
オブジェクトを抽象化することで、オブジェクトの実際の振る舞いを知らなくても使えるようにする仕組みです。

クラスとインスタンス

では、実際にクラスを書いていきたいと思います。
Human(人間)クラスを作っていきます。

プロパティ

まず最初に、Humanにname(名前)とage(年齢)というプロパティ(属性)を実装します。
クラスを定義するためには、「class」というキーワードの後に、大文字で始まる単語と「{}」を書きます。
「class Human {}」「class Animal {}」「class Country」とか、何でも成り立ちます。

コンストラクタで初期化してインスタンス化

クラスとはあくまでも設計図なので、それだけでは何も実行をすることができません。
クラスを実行するためには、インスタンス化(new)する必要があります。

クラスをインスタンス化(new)する時に、初期値を設定します。
その初期値を設定(初期化)する作業をコンストラクタと呼びます。

例ではHumanクラスという設計図を元に、「のび太」という人間を生成する時に、名前(のび太)と年齢(11)を設定しています。
また、Humanクラスは設計図なので、「ブラックジャック」という人間を生成することもできます。
Humanクラスを元に「のび太」や「ブラックジャック」という人間を生成する処理のことを、「インスタンス化」と呼んでいます。
アロー演算子(->)を使うことで、インスタンスのプロパティにアクセスすることができます。

ここがポイント

  • クラスは設計図なので、そのままでは実行することができない
  • クラスを元にして、いくつものインスタンスを生成することができる
  • インスタンス化する時には、「new」というキーワードを使う
  • コンストラクタを使うことで、インスタンスを初期化することができる

メソッド

次にクラスに振る舞いを実装します。
ここでは、「introduce」というメソッドを実装しました。

クラスの継承

継承とはソースコードを再利用する仕組みです。
「extends」というキーワードを使います。
NewTypeHumanクラスは、Humanクラスを継承(extends)しています。
そして、NewTypeHumanにはintroduceメソッドは実装されていないのにも関わらず、introduceメソッドを使うことができています。
つまり、プログラムが再利用されています。

まとめ

この記事では、オブジェクト指向とクラスについて説明しました。
オブジェクト指向は、PHPを使いこなす上では欠かせない概念です。
この記事を読んで、ぜひ、クラスの基本をマスターして下さい。

Good luck for your engineer life!

PHPをより詳しく勉強したい人は、この記事を読んで下さい

PHPの学習でオススメの本と動画【2020年最新】

初心者向け【入門編】 いちばんやさしい PHP の教本 「いちばんやさしいシリーズ」のPHP版です。 とりあえず、PHPをさわって動かしてみたいという人には、オススメの本です。 WordPress 仕事の現場でサッと使える! PHPの勉強で ...

続きを見る


30代からプログラミングを始めようか迷っている人は、この記事を読んで下さい

30代からプログラミングを始めることは可能なのか?【頑張ればギリギリセーフ】

エンジニアは人気の職種だと聞いていますが、若い人達が多い印象です。 30代から始めても間にあいますか? 2030年には79万人のエンジニアが不足 まずは、今後、10年間以上に渡るエンジニアの需給について確認しましょう。 自分の身を預けたいと ...

続きを見る


プログラミングスクールに行くか迷っている人は、この記事を読んで下さい

なんとなく、エンジニアになりたい人が無料のプログラミングスクールに行くべき理由【2019年12月の最新】

有料や無料のプログラミングスクールが多すぎて、どこにしようか迷っています。 無料のプログラミングスクールは、お得そうに見えますが、実際の所はどうですか? メリットやデメリットなどがあれば教えて下さい。 無料のスクールを推す理由 まずは、私が ...

続きを見る


自分がプログラミングスクールに行っても大丈夫か知りたい人は、この記事を読んで下さい

プログラミングスクールに通って挫折する人と上手くいく人の違い

スクールに通っている人の3パターン プログラミングスクールに通っている人のパターンを整理すると、以下の3パターンに分かれます。 それぞれのタイプの特徴を、もう少し詳細に説明していきます。 それぞれのタイプの特徴 大した努力をせずに文句ばかり ...

続きを見る


ゼロからWebエンジニアになりたい人は、この記事を読んで下さい

ゼロからWebエンジニアとして就職する方法【何もない自分に積み上げていく】

ちまたには、「エンジニアになるための情報」で溢れかえっています。 ジョージさんが考える「Webエンジニアになる方法」を教えて下さい。 私が定義するWebエンジニア まず、最初に以下の図を見て下さい。 これが、Web業界で働く人達の大分類です ...

続きを見る


独学で実務っぽい経験を積みたい人は、この記事を読んで下さい

エンジニアが独学で実務経験っぽいことを学ぶ方法

エンジニアとして就職するためには実務経験が大事だと聞いていますが、就職しないことには実務経験を積むことができません。 どうやって、最初の実務経験を積んだらいいでしょうか? スクールの理想と現実 これからプログラミングを学ぼうとしている人が描 ...

続きを見る

関連コンテンツ

-PHP, プログラミング

Copyright© プログラミング道場 , 2020 All Rights Reserved Powered by AFFINGER4.