Submit Search
Upload
【アシアル塾】PHPオブジェクト指向再入門・第一回クラスとオブジェクト
•
6 likes
•
2,989 views
アシアル株式会社
Follow
PHP言語によるオブジェクト指向技術利用に関する入門資料です。 クラスとオブジェクトの役割や用語について解説しています。
Read less
Read more
Report
Share
Report
Share
1 of 26
Download now
Download to read offline
Recommended
【アシアル塾】PHPオブジェクト指向再入門・第三回Exceptionクラスによる例外処理
【アシアル塾】PHPオブジェクト指向再入門・第三回Exceptionクラスによる例外処理
アシアル株式会社
【アシアル塾】PHPオブジェクト指向再入門・第二回クラスの継承と委譲
【アシアル塾】PHPオブジェクト指向再入門・第二回クラスの継承と委譲
アシアル株式会社
【アシアル塾】PHPオブジェクト指向再入門・第一回クラスとオブジェクト
【アシアル塾】PHPオブジェクト指向再入門・第一回クラスとオブジェクト
Yuki Okamoto
【アシアル塾】PHPオブジェクト指向再入門・第四回デザインパターンに学ぶクラス設計
【アシアル塾】PHPオブジェクト指向再入門・第四回デザインパターンに学ぶクラス設計
アシアル株式会社
PHP classの教室
PHP classの教室
Yusuke Ando
40分濃縮 PHP classの教室
40分濃縮 PHP classの教室
Yusuke Ando
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
leverages_event
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
Hiroaki KOBAYASHI
Recommended
【アシアル塾】PHPオブジェクト指向再入門・第三回Exceptionクラスによる例外処理
【アシアル塾】PHPオブジェクト指向再入門・第三回Exceptionクラスによる例外処理
アシアル株式会社
【アシアル塾】PHPオブジェクト指向再入門・第二回クラスの継承と委譲
【アシアル塾】PHPオブジェクト指向再入門・第二回クラスの継承と委譲
アシアル株式会社
【アシアル塾】PHPオブジェクト指向再入門・第一回クラスとオブジェクト
【アシアル塾】PHPオブジェクト指向再入門・第一回クラスとオブジェクト
Yuki Okamoto
【アシアル塾】PHPオブジェクト指向再入門・第四回デザインパターンに学ぶクラス設計
【アシアル塾】PHPオブジェクト指向再入門・第四回デザインパターンに学ぶクラス設計
アシアル株式会社
PHP classの教室
PHP classの教室
Yusuke Ando
40分濃縮 PHP classの教室
40分濃縮 PHP classの教室
Yusuke Ando
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
leverages_event
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
Hiroaki KOBAYASHI
ビギナーだから使いたいO/Rマッパー ~Tengを使った開発~
ビギナーだから使いたいO/Rマッパー ~Tengを使った開発~
Akabane Hiroyuki
Web技術勉強会 20100925
Web技術勉強会 20100925
龍一 田中
よいことも悪いこともぜんぶPHPが教えてくれた
よいことも悪いこともぜんぶPHPが教えてくれた
Moriyoshi Koizumi
Php5 4勉強会
Php5 4勉強会
Yuji Otani
traitを使って楽したい話
traitを使って楽したい話
infinite_loop
SlowQueryとの戦い
SlowQueryとの戦い
Ken Gotoh
PHP5.5新機能「ジェネレータ」初心者入門
PHP5.5新機能「ジェネレータ」初心者入門
kwatch
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
kwatch
06 オブジェクト指向の基礎
06 オブジェクト指向の基礎
文樹 高橋
Ruby 同好会宣言
Ruby 同好会宣言
Yuya Takeyama
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
Yusuke Ando
PHP7を魔改造した話
PHP7を魔改造した話
Moriyoshi Koizumi
Symfony2 How to create your Bundle
Symfony2 How to create your Bundle
chobi e
Perl 6 Object-Oliented Programming
Perl 6 Object-Oliented Programming
risou
最強オブジェクト指向言語 JavaScript 再入門!
最強オブジェクト指向言語 JavaScript 再入門!
Yuji Nojima
Webシステム脆弱性LT資料
Webシステム脆弱性LT資料
Tomohito Adachi
Gen-Template-for-Perl
Gen-Template-for-Perl
nasneg
Deep dive into oss written in swift
Deep dive into oss written in swift
Yuki Asai
20091030cakephphandson 02
20091030cakephphandson 02
Yusuke Ando
JavaScriptの落とし穴
JavaScriptの落とし穴
ikdysfm
Kawaz的jQuery入門
Kawaz的jQuery入門
Kohki Miki
Laravel × レイヤードアーキテクチャを実践して得られた知見と反省 / Practice of Laravel with layered archi...
Laravel × レイヤードアーキテクチャを実践して得られた知見と反省 / Practice of Laravel with layered archi...
Shohei Okada
More Related Content
What's hot
ビギナーだから使いたいO/Rマッパー ~Tengを使った開発~
ビギナーだから使いたいO/Rマッパー ~Tengを使った開発~
Akabane Hiroyuki
Web技術勉強会 20100925
Web技術勉強会 20100925
龍一 田中
よいことも悪いこともぜんぶPHPが教えてくれた
よいことも悪いこともぜんぶPHPが教えてくれた
Moriyoshi Koizumi
Php5 4勉強会
Php5 4勉強会
Yuji Otani
traitを使って楽したい話
traitを使って楽したい話
infinite_loop
SlowQueryとの戦い
SlowQueryとの戦い
Ken Gotoh
PHP5.5新機能「ジェネレータ」初心者入門
PHP5.5新機能「ジェネレータ」初心者入門
kwatch
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
kwatch
06 オブジェクト指向の基礎
06 オブジェクト指向の基礎
文樹 高橋
Ruby 同好会宣言
Ruby 同好会宣言
Yuya Takeyama
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
Yusuke Ando
PHP7を魔改造した話
PHP7を魔改造した話
Moriyoshi Koizumi
Symfony2 How to create your Bundle
Symfony2 How to create your Bundle
chobi e
Perl 6 Object-Oliented Programming
Perl 6 Object-Oliented Programming
risou
最強オブジェクト指向言語 JavaScript 再入門!
最強オブジェクト指向言語 JavaScript 再入門!
Yuji Nojima
Webシステム脆弱性LT資料
Webシステム脆弱性LT資料
Tomohito Adachi
Gen-Template-for-Perl
Gen-Template-for-Perl
nasneg
Deep dive into oss written in swift
Deep dive into oss written in swift
Yuki Asai
20091030cakephphandson 02
20091030cakephphandson 02
Yusuke Ando
JavaScriptの落とし穴
JavaScriptの落とし穴
ikdysfm
What's hot
(20)
ビギナーだから使いたいO/Rマッパー ~Tengを使った開発~
ビギナーだから使いたいO/Rマッパー ~Tengを使った開発~
Web技術勉強会 20100925
Web技術勉強会 20100925
よいことも悪いこともぜんぶPHPが教えてくれた
よいことも悪いこともぜんぶPHPが教えてくれた
Php5 4勉強会
Php5 4勉強会
traitを使って楽したい話
traitを使って楽したい話
SlowQueryとの戦い
SlowQueryとの戦い
PHP5.5新機能「ジェネレータ」初心者入門
PHP5.5新機能「ジェネレータ」初心者入門
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
06 オブジェクト指向の基礎
06 オブジェクト指向の基礎
Ruby 同好会宣言
Ruby 同好会宣言
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
PHP7を魔改造した話
PHP7を魔改造した話
Symfony2 How to create your Bundle
Symfony2 How to create your Bundle
Perl 6 Object-Oliented Programming
Perl 6 Object-Oliented Programming
最強オブジェクト指向言語 JavaScript 再入門!
最強オブジェクト指向言語 JavaScript 再入門!
Webシステム脆弱性LT資料
Webシステム脆弱性LT資料
Gen-Template-for-Perl
Gen-Template-for-Perl
Deep dive into oss written in swift
Deep dive into oss written in swift
20091030cakephphandson 02
20091030cakephphandson 02
JavaScriptの落とし穴
JavaScriptの落とし穴
Similar to 【アシアル塾】PHPオブジェクト指向再入門・第一回クラスとオブジェクト
Kawaz的jQuery入門
Kawaz的jQuery入門
Kohki Miki
Laravel × レイヤードアーキテクチャを実践して得られた知見と反省 / Practice of Laravel with layered archi...
Laravel × レイヤードアーキテクチャを実践して得られた知見と反省 / Practice of Laravel with layered archi...
Shohei Okada
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
Rui Hirokawa
pi-15. カプセル化, MVCモデル, オブジェクトのマッピング
pi-15. カプセル化, MVCモデル, オブジェクトのマッピング
kunihikokaneko1
Doctrineではじめるsymfony1.2開発
Doctrineではじめるsymfony1.2開発
Katsuhiro Ogawa
CodeIgniter入門
CodeIgniter入門
Sho A
知って得する標準関数の使い方
知って得する標準関数の使い方
Soudai Sone
理科大勉強会2
理科大勉強会2
Masataka Hashimoto
10分でわかるFuelPHP @ 2011/12
10分でわかるFuelPHP @ 2011/12
kenjis
Best practice laravel
Best practice laravel
Risa Ohnishi
Yahoo!ボックスAPI Hackday資料
Yahoo!ボックスAPI Hackday資料
Yahoo!デベロッパーネットワーク
はじめてのPowerShell
はじめてのPowerShell
Trainocate Japan, Ltd.
20180123 power shell
20180123 power shell
Trainocate Japan, Ltd.
PHPとJavaScriptにおけるオブジェクト指向を比較する
PHPとJavaScriptにおけるオブジェクト指向を比較する
kwatch
Yahoo!ボックスAPI Hackathon向け資料
Yahoo!ボックスAPI Hackathon向け資料
Yahoo!デベロッパーネットワーク
PHP基礎勉強会
PHP基礎勉強会
Yuji Otani
Cakephpstudy5 hacks jp
Cakephpstudy5 hacks jp
Hiroki Shimizu
大ざっぱにオブジェクト指向
大ざっぱにオブジェクト指向
azuma satoshi
意図を表現するプログラミング
意図を表現するプログラミング
Atsuhiro Kubo
WordPress テーマ作成&PHP超入門
WordPress テーマ作成&PHP超入門
Michinari Odajima
Similar to 【アシアル塾】PHPオブジェクト指向再入門・第一回クラスとオブジェクト
(20)
Kawaz的jQuery入門
Kawaz的jQuery入門
Laravel × レイヤードアーキテクチャを実践して得られた知見と反省 / Practice of Laravel with layered archi...
Laravel × レイヤードアーキテクチャを実践して得られた知見と反省 / Practice of Laravel with layered archi...
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
pi-15. カプセル化, MVCモデル, オブジェクトのマッピング
pi-15. カプセル化, MVCモデル, オブジェクトのマッピング
Doctrineではじめるsymfony1.2開発
Doctrineではじめるsymfony1.2開発
CodeIgniter入門
CodeIgniter入門
知って得する標準関数の使い方
知って得する標準関数の使い方
理科大勉強会2
理科大勉強会2
10分でわかるFuelPHP @ 2011/12
10分でわかるFuelPHP @ 2011/12
Best practice laravel
Best practice laravel
Yahoo!ボックスAPI Hackday資料
Yahoo!ボックスAPI Hackday資料
はじめてのPowerShell
はじめてのPowerShell
20180123 power shell
20180123 power shell
PHPとJavaScriptにおけるオブジェクト指向を比較する
PHPとJavaScriptにおけるオブジェクト指向を比較する
Yahoo!ボックスAPI Hackathon向け資料
Yahoo!ボックスAPI Hackathon向け資料
PHP基礎勉強会
PHP基礎勉強会
Cakephpstudy5 hacks jp
Cakephpstudy5 hacks jp
大ざっぱにオブジェクト指向
大ざっぱにオブジェクト指向
意図を表現するプログラミング
意図を表現するプログラミング
WordPress テーマ作成&PHP超入門
WordPress テーマ作成&PHP超入門
More from アシアル株式会社
MonacaとEducation活動の紹介
MonacaとEducation活動の紹介
アシアル株式会社
PWA 4 Business
PWA 4 Business
アシアル株式会社
Monacaによるモバイルアプリ開発ことはじめ
Monacaによるモバイルアプリ開発ことはじめ
アシアル株式会社
kintone 連携スマホアプリの開発・配布体験
kintone 連携スマホアプリの開発・配布体験
アシアル株式会社
JINS MEME DEVELOPER HANDS-ON (Monaca / Apache Cordova編)
JINS MEME DEVELOPER HANDS-ON (Monaca / Apache Cordova編)
アシアル株式会社
書籍『Monacaで学ぶはじめてのプログラミング』発展資料(試験問題アプリ編)
書籍『Monacaで学ぶはじめてのプログラミング』発展資料(試験問題アプリ編)
アシアル株式会社
書籍『Monacaで学ぶはじめてのプログラミング』 講義スライド第2弾(体験版)
書籍『Monacaで学ぶはじめてのプログラミング』 講義スライド第2弾(体験版)
アシアル株式会社
Onsen UI 2 開発における JS フレームワーク衝突事例集
Onsen UI 2 開発における JS フレームワーク衝突事例集
アシアル株式会社
Web標準技術でiOS、Android両対応アプリを開発
Web標準技術でiOS、Android両対応アプリを開発
アシアル株式会社
書籍『Monacaで学ぶはじめてのプログラミング』 講義スライド(体験版)
書籍『Monacaで学ぶはじめてのプログラミング』 講義スライド(体験版)
アシアル株式会社
Cordovaの特徴と開発手法概要
Cordovaの特徴と開発手法概要
アシアル株式会社
Html5/JSモバイルアプリ最前線
Html5/JSモバイルアプリ最前線
アシアル株式会社
Onsen UI の最近とこれから 〜 国内サポートはじめました
Onsen UI の最近とこれから 〜 国内サポートはじめました
アシアル株式会社
Monaca事例から学ぶHTML5モバイルアプリの活用ポイント
Monaca事例から学ぶHTML5モバイルアプリの活用ポイント
アシアル株式会社
最新UIフレームワーク Onsen UI2でカッコイイWordPress連携アプリを作る方法
最新UIフレームワーク Onsen UI2でカッコイイWordPress連携アプリを作る方法
アシアル株式会社
Gartner summit 2016
Gartner summit 2016
アシアル株式会社
モバイル用Webフレームワーク最前線
モバイル用Webフレームワーク最前線
アシアル株式会社
Monacaソリューションセミナー20160621
Monacaソリューションセミナー20160621
アシアル株式会社
20160308seminar2
20160308seminar2
アシアル株式会社
Nifty cloud mbaas
Nifty cloud mbaas
アシアル株式会社
More from アシアル株式会社
(20)
MonacaとEducation活動の紹介
MonacaとEducation活動の紹介
PWA 4 Business
PWA 4 Business
Monacaによるモバイルアプリ開発ことはじめ
Monacaによるモバイルアプリ開発ことはじめ
kintone 連携スマホアプリの開発・配布体験
kintone 連携スマホアプリの開発・配布体験
JINS MEME DEVELOPER HANDS-ON (Monaca / Apache Cordova編)
JINS MEME DEVELOPER HANDS-ON (Monaca / Apache Cordova編)
書籍『Monacaで学ぶはじめてのプログラミング』発展資料(試験問題アプリ編)
書籍『Monacaで学ぶはじめてのプログラミング』発展資料(試験問題アプリ編)
書籍『Monacaで学ぶはじめてのプログラミング』 講義スライド第2弾(体験版)
書籍『Monacaで学ぶはじめてのプログラミング』 講義スライド第2弾(体験版)
Onsen UI 2 開発における JS フレームワーク衝突事例集
Onsen UI 2 開発における JS フレームワーク衝突事例集
Web標準技術でiOS、Android両対応アプリを開発
Web標準技術でiOS、Android両対応アプリを開発
書籍『Monacaで学ぶはじめてのプログラミング』 講義スライド(体験版)
書籍『Monacaで学ぶはじめてのプログラミング』 講義スライド(体験版)
Cordovaの特徴と開発手法概要
Cordovaの特徴と開発手法概要
Html5/JSモバイルアプリ最前線
Html5/JSモバイルアプリ最前線
Onsen UI の最近とこれから 〜 国内サポートはじめました
Onsen UI の最近とこれから 〜 国内サポートはじめました
Monaca事例から学ぶHTML5モバイルアプリの活用ポイント
Monaca事例から学ぶHTML5モバイルアプリの活用ポイント
最新UIフレームワーク Onsen UI2でカッコイイWordPress連携アプリを作る方法
最新UIフレームワーク Onsen UI2でカッコイイWordPress連携アプリを作る方法
Gartner summit 2016
Gartner summit 2016
モバイル用Webフレームワーク最前線
モバイル用Webフレームワーク最前線
Monacaソリューションセミナー20160621
Monacaソリューションセミナー20160621
20160308seminar2
20160308seminar2
Nifty cloud mbaas
Nifty cloud mbaas
【アシアル塾】PHPオブジェクト指向再入門・第一回クラスとオブジェクト
1.
URL : http://www.asial.co.jp/
│ Copyright © Asial Corporation. All Rights Reserved. │ 1 PHPオブジェクト指向再入門 クラスとオブジェクト 1回3,000円のWeb技術教育・アシアル塾 http://www.asial.co.jp/school/juku.php
2.
URL : http://www.asial.co.jp/
│ Copyright © Asial Corporation. All Rights Reserved. │ 2 本講座の目的 本講座の目的 • 書籍だけでは理解することが難しいオブジェクト指向の技術や考え方を、ひとつずつ理解していきます。 受講対象者 • プログラミングの基本的な手法である構造化プログラミング(順次・反復・分岐)や変数・関数の仕組みを理 解している方 第一回目(クラスとオブジェクト)の目標 1. クラスとオブジェクトの違いを理解する 2. 自分の手でクラスを定義してオブジェクトを生成する 3. アクセサメソッドの重要性について理解する 4. PHPで提供されているクラスやオブジェクトを利用する
3.
URL : http://www.asial.co.jp/
│ Copyright © Asial Corporation. All Rights Reserved. │ 3 オブジェクト指向とは?
4.
URL : http://www.asial.co.jp/
│ Copyright © Asial Corporation. All Rights Reserved. │ 4 オブジェクト指向とは オブジェクト指向とは? • プログラミング手法の一つです • システム全体を「個々の役割を持ったオブジェクトの集まり」としてとらえる考え方・仕組み オブジェクト指向を学ぶメリット • クラスライブラリやフレームワークといった資産を利用することができます • ソースコードの品質を高めることができます 学習上の課題 • 用語が多く、混乱しやすい • 抽象的な思考を求められるので理解するのが大変
5.
URL : http://www.asial.co.jp/
│ Copyright © Asial Corporation. All Rights Reserved. │ 5 手続き型とオブジェクト指向の比較 役割がクラスに分かれている = 再利用や修正が簡単。 大規模開発やチーム開発に最適。 関数 関数 関数 データ 関数 データ データ 関数 クラスA クラスB 関数 関数 データ データ データ 関数 関数 関数 DB処理 メール処理 役 割 分 担 が 明 確
6.
URL : http://www.asial.co.jp/
│ Copyright © Asial Corporation. All Rights Reserved. │ 6 オブジェクト指向のアイディアはシンプル オブジェクト指向のアイデアは簡単 • 1960年代のシミュレーション言語(Simula)から生まれた オブジェクト指向のアイデア • オブジェクトがそれぞれ役割分担をして仕事をこなす • 互いにメッセージを送受しあうことで、全体として処理を達成する オブジェクトがチームプレーを行う オブジェクトとは何か? • プロパティ(属性)を持っている データ、変数 • メソッド(振る舞い)を持っている 処理、関数 objectA objectB objectC objectD
7.
URL : http://www.asial.co.jp/
│ Copyright © Asial Corporation. All Rights Reserved. │ 7 オブジェクトの作り方 オブジェクトの作り方 • オブジェクトを作るためには、設計図としてclassを定義する必要があります。 PHPがすでに用意しているclassも存在します。それらを利用する場合は定義不要です。 • クラス(class)は関数(function)を作るときと同じようなイメージで定義することができる classでは複数のプロパティ(属性)とメソッド(振る舞い)を定義することができます – つまり、複数の変数と関数をまとめて持つことができます クラス(class)とは? • オブジェクトを作成するための設計図です • クラスを定義することでプロパティの異なる複数のオブジェクトを生成することができます
8.
URL : http://www.asial.co.jp/
│ Copyright © Asial Corporation. All Rights Reserved. │ 8 クラスとオブジェクト
9.
URL : http://www.asial.co.jp/
│ Copyright © Asial Corporation. All Rights Reserved. │ 9 【実習】クラスを定義してオブジェクトを生成する クラスの定義 解説 • $thisは自分自身のオブジェクトを表します • public は変数やメソッドに対するアクセス権を設定しています ※アクセス権については後程解説いたします <?php class Person // 人を表すクラス { public $name = ''; // 名前を記憶するプロパティ public function sayHello() // あいさつするメソッド { echo 'こんにちは、' . $this->name . 'です。'; } } Person.php
10.
URL : http://www.asial.co.jp/
│ Copyright © Asial Corporation. All Rights Reserved. │ 10 【実習】クラスを定義してオブジェクトを生成する オブジェクトの生成とプロパティ・メソッドの利用 解説 • オブジェクトの生成 オブジェクトを生成するには、newに続けてクラス名を指定します – $object = new クラス名();とすると、生成されたオブジェクトを変数にセットできます • プロパティの変更 $object->プロパティ名 = 'foo' とすると、オブジェクトのプロパティを変更できます echo $object->プロパティ名 とすると、オブジェクトのプロパティを画面に出力できます • メソッドの呼び出し $object->メソッド名() とするとオブジェクトのメソッドを実行できます <?php require_once('Person.php'); $taro = new Person(); // newでオブジェクトを作成します $taro->name = 'アシアル太郎'; // name属性の値を変更します $taro->sayHello(); // 「こんにちは、アシアル太郎です。」と出力されます index.php
11.
URL : http://www.asial.co.jp/
│ Copyright © Asial Corporation. All Rights Reserved. │ 11 クラス定義に必要な知識と考え方 カプセル化(隠ぺい化)を行う • 他のクラスや処理からアクセスされたくないプロパティやメソッドを隠す アクセス権を設定する • アクセサメソッドを用意する コンストラクタを活用する クラス名の付け方を意識する
12.
URL : http://www.asial.co.jp/
│ Copyright © Asial Corporation. All Rights Reserved. │ 12 アクセス修飾子 アクセス修飾子の種類 • publicとprivate、protectedの3種類存在します。 public の場合、どこからでもアクセス可能です • $taro = new Person(); • $taro->name = 'アシアル太郎'; // publicプロパティなのでOK private の場合、同一クラス内からのみアクセス可能です • $taro = new Person(); • $taro->name = 'アシアル太郎'; // privateプロパティなのでエラー $taro->setName('アシアル太郎'); // publicなアクセサメソッドを経由すればOK protected の場合、同一クラス内と子クラス内のみアクセス可能です • privateの範囲に加え、そのクラスを継承した子クラスからもアクセス可能 • 継承については次の回を目途に解説
13.
URL : http://www.asial.co.jp/
│ Copyright © Asial Corporation. All Rights Reserved. │ 13 【実習】プロパティをprivateに設定する Person.phpを改造します 解説 • $name プロパティをprivateに設定します • 外部から$nameを設定できるようにsetName()メソッドを追加します <?php class Person { private $name = ''; public function setName($name) { $this->name = trim($name); } public function sayHello() { echo 'こんにちは、' . $this->name . 'です。'; } } Person.php
14.
URL : http://www.asial.co.jp/
│ Copyright © Asial Corporation. All Rights Reserved. │ 14 【実習】アクセサメソッドを利用する index.phpを改造します。 <?php require_once('Person.php'); $taro = new Person(); $taro->setName('アシアル太郎'); $taro->sayHello(); index.php
15.
URL : http://www.asial.co.jp/
│ Copyright © Asial Corporation. All Rights Reserved. │ 15 アクセサメソッド アクセサメソッドとは • プロパティに間接的にアクセスするためのメソッドです プロパティにアクセスしたい場合に用意します • アクセサメソッドを通すことで入力チェックや値の整形処理を行うことができます 値を変更するメソッドをセッターと呼びます 値を取得するメソッドをゲッターと呼びます
16.
URL : http://www.asial.co.jp/
│ Copyright © Asial Corporation. All Rights Reserved. │ 16 カプセル化のまとめ カプセル化とは、プロパティ・メソッドを隠すことです • プロパティをprivateにして不正な変更からオブジェクトを守ります • 外から呼ばれると困る内部処理メソッドもprivateにして守りましょう 内部処理のためのメソッドをprivateにする理由 • クラスの利用者側の責任範囲を小さくできる publicになっているメソッドだけ理解すればよくなる • メソッドを修正する際、影響範囲を内部に限定できる privateなメソッドは変更の影響が内部に限定できるためメンテナンスしやすくなります
17.
URL : http://www.asial.co.jp/
│ Copyright © Asial Corporation. All Rights Reserved. │ 17 コンストラクタを活用する コンストラクタとは • インスタンス化の際に自動的に呼び出される初期化メソッド • __construct というメソッド名で定義できます constructの意味は組み立てる・構成するという意味です • プロパティの初期化などに利用します デストラクタというものもあります • __destruct() • スクリプトの終了時やオブジェクトを参照可能な変数がひとつもなくなった時 に呼び出されます。
18.
URL : http://www.asial.co.jp/
│ Copyright © Asial Corporation. All Rights Reserved. │ 18 【実習】コンストラクタを利用する Person.phpを改造します <?php class Person // アクセス修飾子の例 { private $name = ''; public function __construct($name) { $this->setName($name); } public function __destruct() { echo 'さようなら'; } public function setName($name) { $this->name = trim($name); } public function sayHello() { // あいさつするメソッド (publicなのでどこからでも呼べる) echo 'こんにちは、' . $this->name . 'です。'; } } Person.php
19.
URL : http://www.asial.co.jp/
│ Copyright © Asial Corporation. All Rights Reserved. │ 19 【実習】コンストラクタを利用する index.phpを改造します。ついでに複数のオブジェクトを作成しましょう。 <?php require_once('Person.php'); $taro = new Person('アシアル太郎'); $hanako = new Person('アシアル花子'); $taro->sayHello(); $hanako->sayHello(); index.php
20.
URL : http://www.asial.co.jp/
│ Copyright © Asial Corporation. All Rights Reserved. │ 20 クラス名の付け方 クラス名は名詞にします クラスが何の役割を表すのかを明確に表しましょう • User • Item • Mail 現実上のものではなく、特定の処理を担うようなクラスは、動詞を名詞化したクラ ス名をつけましょう • 読み込む: read -> CsvFileReader • 制御する: control -> OrderController • 管理する: manage -> ConnectionManager
21.
URL : http://www.asial.co.jp/
│ Copyright © Asial Corporation. All Rights Reserved. │ 21 メソッド名の付け方 メソッド名は動詞で始めましょう • save() • getParameter($name) • findByUserName($userName) boolean (true/false) を返すメソッド名はisやhasで始める • isAvailable() • isDisabled() • hasParameter($name) 命名ルールを決めておくと可読性が向上し、クラスの振る舞いや目的が分かりやす くなります • Itemクラス、isAvailable() • Databaseクラス、connect() • Userクラス、isLoggedIn()
22.
URL : http://www.asial.co.jp/
│ Copyright © Asial Corporation. All Rights Reserved. │ 22 【発展】SimpleXMLを利用してみよう SimpleXML • XMLをオブジェクトに変換できる拡張モジュールです • RSS情報などを簡単に扱えます • http://php.net/manual/ja/book.simplexml.php 以下のソースコードを参考に、好きなサイトのRSS情報を表示してみてください • コメントを外すとオブジェクトのdump結果が確認できます <?php $rss = simplexml_load_file('http://blog.asial.co.jp/rss/rss2.0.php'); // var_dump($rss); // var_dump(get_class_methods($rss)); foreach ($rss->channel->item as $item) { echo htmlspecialchars($item->title, ENT_QUOTES, 'UTF-8')."<br>¥n"; // var_dump($item->guid->attributes()); }
23.
URL : http://www.asial.co.jp/
│ Copyright © Asial Corporation. All Rights Reserved. │ 23 【CM】アシアルスクール
24.
URL : http://www.asial.co.jp/
│ Copyright © Asial Corporation. All Rights Reserved. │ 24 アシアル塾のご案内 1回3,000円でWeb技術を約90分学習できる格安の教育サービスです • 60分の講義+30分の復習&質問タイム 主な対象 • IT業界やWeb業界で働いているプロの方の学習を応援します! Webデザイナーの方大歓迎 • 技術を分かりやすく教えます 絶対理解保証キャンペーン実施中 • もし講義内容にご満足いただけなかった場合は返金いたします (返金手数料のみ頂戴いたします) URL • http://www.asial.co.jp/school/juku.php
25.
URL : http://www.asial.co.jp/
│ Copyright © Asial Corporation. All Rights Reserved. │ 25 アシアルスクールのご案内 Web関連技術を集中的かつ体系的に学べる研修サービスです • 半日∼二日間の集中講義を中心に実施 • PHPやJavaScript、LinuxといったWeb関連技術が学べます URL • http://www.asial.co.jp/school/guide.php 例:PHP講座の学習ロードマップ
26.
URL : http://www.asial.co.jp/
│ Copyright © Asial Corporation. All Rights Reserved. │ 26 企業研修のご案内 アシアルではWeb技術に関する企業研修を行っています • 技術職採用の社員に向けた新人研修・中途採用者向け研修 • 総合職向けのWeb技術入門研修 主な実績 • グリー株式会社様 • 株式会社ドワンゴ様 • 株式会社朝日新聞社様 URL • http://www.asial.co.jp/business/training/
Download now