トップ  > メモ一覧  > カテゴリ「オブジェクト指向」の絞り込み結果 : 17件

17件中 1 〜 10 表示  1 | 2  次の7件> 最後»

No.5403【引用】interfaceとabstractの特徴と違いを捉える

   

 

PHPのinterfaceとabstractを正しく理解して使い分けたいぞー
2010-11-09

interfaceとabstractの特徴と違いを捉える
今回もPHP話。(正しくないことは @ahomu に教えてもらえると助かりマス)
PHP5では、 interface(インターフェイスの宣言) や abstract(抽象化) が使用できます。これらの説明を読むと、一見して同じような役割を持っているように見えます。
それは両者とも、 メソッドの実装を「インターフェイスを実装したクラス」や、「抽象クラスを継承し...

引用元

更新:2018/12/16 22:01 カテゴリ: PHP  > オブジェクト指向 ▲トップ

No.4587【引用】オブジェクト指向できていますか?

オブジェクト指向できていますか?
http://www.slideshare.net/MoriharuOhzu/ss-14083300

オブジェクト指向できていますか? from Moriharu Ohzu

引用元

更新:2012/08/30 08:53 カテゴリ: PHP  > オブジェクト指向 ▲トップ

No.4358【引用】PHP classの教室

PHP classの教室
http://www.slideshare.net/yandod/php-class

引用元

更新:2012/03/21 20:06 カテゴリ: PHP  > オブジェクト指向 ▲トップ

No.1656 シングルトン


    function &getInstance()
    {
        static $singleton;
        if (empty($singleton)) {
            $singleton = new OpenPNE_DB();
        }
        return $singleton;
    }

更新:2009/10/22 02:33 カテゴリ: PHP  > オブジェクト指向 ▲トップ

No.1653 縛り技:abstruct

クラスの抽象化

PHP 5 では、抽象クラスとメソッドが導入されました。 abstractとして宣言されたクラスのインスタンスを生成することはできません。 1つ以上の抽象メソッドを含む全てのクラスもまた抽象クラスとなります。 abstractとして定義されたメソッドは、そのメソッドの外観を宣言するのみで、 実装を定義することはできません。

抽象クラスから継承する際、親クラスの宣言で abstract としてマークされた 全てのメソッドは、子クラスで定義されなければなりません。加えて、 これらのメソッドは同等 (あるいはより緩い制約) の 可視性 で定義される必要があります。例えば、抽象メソッドが protected として定義された場合、その関数の実装は protected または public のどちらかとして定義する必要があります。private にすることはできません。

例1 抽象クラスの例

<?php
abstract class AbstractClass
{
    
// 拡張クラスにこのメソッドの定義を強制する
    
abstract protected function getValue();
    abstract protected function 
prefixValue($prefix);

    
// Common method
    
public function printOut() {
        print 
$this->getValue() . "\n";
    }
}

class 
ConcreteClass1 extends AbstractClass
{
    protected function 
getValue() {
        return 
"ConcreteClass1";
    }

    public function 
prefixValue($prefix) {
        return 
"{$prefix}ConcreteClass1";
    }
}

class 
ConcreteClass2 extends AbstractClass
{
    public function 
getValue() {
        return 
"ConcreteClass2";
    }

    public function 
prefixValue($prefix) {
        return 
"{$prefix}ConcreteClass2";
    }
}

$class1 = new ConcreteClass1;
$class1->printOut();
echo 
$class1->prefixValue('FOO_') ."\n";

$class2 = new ConcreteClass2;
$class2->printOut();
echo 
$class2->prefixValue('FOO_') ."\n";
?>

上の例の出力は以下となります。

ConcreteClass1
FOO_ConcreteClass1
ConcreteClass2
FOO_ConcreteClass2

'abstract'という名前のユーザー定義関数または関数を有さない コードは修正なしに動作します。

引用元

更新:2009/10/20 22:30 カテゴリ: PHP  > オブジェクト指向 ▲トップ

No.1655 デストラクタ

デストラクタ

void __destruct ( void )

PHP 5 では、C++ のような他のオブジェクト指向言語に似た概念のデストラクタが 導入されました。デストラクタメソッドは、特定のオブジェクトへの全てのリファレンスが 削除された直後やオブジェクトが明示的に破棄された直後にコールされます。 あるいは、スクリプトの終了時にも順不同でコールされます。

例2 デストラクタの例

<?php
class MyDestructableClass {
   function 
__construct() {
       print 
"In constructor\n";
       
$this->name "MyDestructableClass";
   }

   function 
__destruct() {
       print 
"Destroying " $this->name "\n";
   }
}

$obj = new MyDestructableClass();
?>

インスタンスの破棄時、処理の終わりにやりたいことをここに書く!


更新:2009/10/20 22:30 カテゴリ: PHP  > オブジェクト指向 ▲トップ

No.1652 タイプヒンティング

タイプヒンティング

PHP 5では、タイプヒンティング(Type Hinting)が導入されました。 これにより、関数は、 (クラスの名前を関数プロトタイプの中に指定することにより) パラメータをオブジェクトもしくは配列 (PHP5.1以降) が必ず指定されるようにすることができるようになりました。 しかし、デフォルトのパラメータの値として NULL を使用した場合は、後から任意の値を引数に指定できるようになります。

例1 タイプヒンティングの例

<?php
// とあるクラス
class MyClass
{
    
/**
     * テスト関数
     *
     * 第 1 引数は OtherClass 型のオブジェクトでなければならない
     */
    
public function test(OtherClass $otherclass) {
        echo 
$otherclass->var;
    }


    
/**
     * もう一つのテスト関数
     *
     * 第 1 引数は配列でなければならない
     */
    
public function test_array(array $input_array) {
        
print_r($input_array);
    }
}

// もう一つのサンプルクラス
class OtherClass {
    public 
$var 'Hello World';
}
?>

引用元

更新:2009/10/20 22:25 カテゴリ: PHP  > オブジェクト指向 ▲トップ

No.1651 インスタンスの縛り技:instanceof (型演算子)


例1 クラスでの instanceof の使用法

<?php
class MyClass
{
}

class 
NotMyClass
{
}
$a = new MyClass;

var_dump($a instanceof MyClass);
var_dump($a instanceof NotMyClass);
?>

上の例の出力は以下となります。

bool(true)
bool(false)

引用元

更新:2009/10/20 22:24 カテゴリ: PHP  > オブジェクト指向 ▲トップ

No.1650 例外・try・catche・throw

例1 例外を投げるには
<?php
function inverse($x) {
    if (!
$x) {
        throw new 
Exception('ゼロによる除算。');
    }
    else return 
1/$x;
}

try {
    echo 
inverse(5) . "\n";
    echo 
inverse(0) . "\n";
} catch (
Exception $e) {
    echo 
'捕捉した例外: ',  $e->getMessage(), "\n";
}

// 実行は継続される
echo 'Hello World';
?>

上の例の出力は以下となります。

0.2
捕捉した例外: ゼロによる除算。
Hello World


※例外:PHP5で追加された概念
・try     :呼び出し側
・throw:呼ばれる側
・catch:例外時の処理

引用元

更新:2009/10/20 22:20 カテゴリ: PHP  > オブジェクト指向 ▲トップ
17件中 1 〜 10 表示  1 | 2  次の7件> 最後»

Python

フロントエンド開発

Linux

web開発

svn・git

ソース・開発

プロマネ

マネタイズ

FuelPHP

HTML・CSS

JavaScript

プレゼン

Alexa

webサービス運用

webサービス

Mac

サーバ管理

MySQL

PHP

ツール, ライブラリ

ビジネス

テンプレート

負荷・チューニング

Windows

メール

メール・手紙文例

CodeIgniter

オブジェクト指向

UI・フロントエンド

cloud

マークアップ・テキスト

Flash

デザイン

DBその他

Ruby

PostgreSQL

ユーティリティ・ソフト

Firefox

ハードウェア

Google

symfony

OpenPNE全般

OpenPNE2

Hack(賢コツ)

OpenPNE3

リンク

個人開発

その他

未確認

KVS

ubuntu

Android

負荷試験

オープンソース

社会

便利ツール

マネー

Twig

食品宅配

WEB設計

オーディオ

一般常識

アプリ開発

サイトマップ

うずら技術ブログ

たませんSNS

rss2.0