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

プログラミング道場

私がオススメするプログラミング教材です

私がおすすめするプログラミング教材のまとめ【書籍】

目次1 これからエンジニアになりたい人へ向けた本2 プログラミング言語3 アプリ開発4 サーバー、インフラ、セキュリティなど5 機械学習系6 ゲーム開発7 データベース8 デザイン9 組織作り10 自作シリーズ11 その他12 おまけ これ ...

続きを見る

【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をより詳しく勉強したい人には、この記事がオススメです

PHPの学習でおすすめの本と動画【2024年最新】

▼ Laravelについてはこの記事で、バージョンごとに紹介しています 目次1 動画教材2 初心者向け【入門編】3 中級者向け 動画教材 【PHP入門】2ちゃんねる掲示板クローンを作りながらPHPとMySQLの基礎と本質をマスターするPHP ...

続きを見る


Laravelをより詳しく勉強したい人には、この記事がオススメです

Laravelの学習でおすすめの本と動画【2024年最新】

目次1 動画教材2 Laravel63 Laravel84 Laravel9 動画教材 【Laravel】【Vue.js3】で【CRM(顧客管理システム)】をつくってみよう ▼ 興味がある方は、画像をクリック 受講者向けアンケートでご要望の ...

続きを見る


WordPressをより詳しく勉強したい人には、この記事がオススメです

WordPressの学習でおすすめの本【2023年最新】

目次1 初心者向け2 中級者向け 初心者向け いちばんやさしいWordPressの教本 第4版 5.x対応 これからワードプレスを始める初心者にオススメの本です。 手早くサイトを作りたい人は、この本を買いましょう^^ 非常にわかりやすいです ...

続きを見る


Rubyをより詳しく勉強したい人には、この記事がオススメです

Rubyの学習でおすすめの本と動画【2024年最新】

▼ Ruby on Railsについては、この記事で紹介しています 目次1 動画教材2 初心者向け【入門編】3 中級者向け4 上級者向け 動画教材 "ちゃんと" Ruby を学ぼう! ー オブジェクト指向機能ってなんだ? ▼ 興味がある方は ...

続きを見る


Javaをより詳しく勉強したい人には、この記事がオススメです

Javaの学習でおすすめの本と動画【2024年最新】

▼ Spring Bootの勉強をしたい人には、この記事がおすすめです 目次1 動画教材2 初心者向け3 中級者向け 動画教材 動画でわかる Java入門講座 基本~オブジェクト編 ▼ 興味がある方は、画像をクリックして下さい 「初心者向け ...

続きを見る


Gitをより詳しく勉強したい人には、この記事がオススメです

Gitの学習でおすすめの本と動画【2024年最新】

目次1 動画教材2 漫画?でわかりやすく学ぶ入門書の定番3 初心者向け4 中級者向け5 上級者向け 動画教材 もう怖くないGit!チーム開発で必要なGitを完全マスター ▼ 興味がある方は、画像をクリック Gitの基本コマンド、ブランチやマ ...

続きを見る


Perlをより詳しく勉強したい人には、この記事がオススメです

Perlの学習でおすすめの本と動画【2024年最新】

目次1 動画教材2 初心者向け3 中級者向け 動画教材 Learn Perl 5 By Doing It ▼ 興味がある方は、画像をクリック 英語版です。 Webスクレイピングからデータの修正まで、実際に使えるPerlプログラムを作成しなが ...

続きを見る


ゼロからWebエンジニアになりたい人には、この記事がオススメです

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

ちまたには、「エンジニアになるための情報」で溢れかえっています。 ジョージさんが考える「Webエンジニアになる方法」を教えて下さい。 目次1 私が定義するWebエンジニア2 必ずやるべきこと3 推奨されること4 まとめ 私が定義するWebエ ...

続きを見る


独学で実務っぽい経験を積みたい人には、この記事がオススメです

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

エンジニアとして就職するためには実務経験が大事だと聞いていますが、就職しないことには実務経験を積むことができません。 どうやって、最初の実務経験を積んだらいいでしょうか? 目次1 スクールの理想と現実2 IT業界が抱える矛盾点3 擬似的に実 ...

続きを見る

-PHP, プログラミング

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