検索
ホームページphp教程php手册php学習ノートオブジェクト指向

php学習ノートオブジェクト指向

Jul 29, 2017 pm 04:36 PM
phpオブジェクト指向

public パブリック: このクラス、サブクラス、外部オブジェクトはすべて呼び出すことができます
保護: このクラスのサブクラスは実行できますが、外部オブジェクトは呼び出すことができません
プライベート: このクラスのみが実行され、サブクラスも外部オブジェクトも実行されません外部オブジェクトを呼び出すことができます
オブジェクト指向プログラミングの 3 つの主要な特徴

1) 閉鎖性

閉鎖性は、情報の隠蔽とも呼ばれます。クラスの利用と実装を分離し、外部と接続するインターフェース(メソッド)を限定することです。このクラスを使用する開発者は、このクラスの使用方法を知るだけでよく、このクラスがどのように実装されるかを気にする必要はありません。そうすることで、開発者は他のことに集中できるようになり、同時にプログラム間の相互依存によって引き起こされる不都合も回避できます。

2) 継承

継承とは、派生クラス (サブクラス) が 1 つ以上の基本クラス (親クラス) のプロパティとメソッドを自動的に継承し、オーバーライドしたり、新しいプロパティを追加したりできることを意味します。と方法。継承によりオブジェクトとクラスの作成が簡素化され、コードの再現性が向上します。継承は単一継承と多重継承に分けられますが、php では単一継承、つまりサブクラスが親クラスを 1 つだけ持つことをサポートしています。

3) ポリモーフィズム

ポリモーフィズムとは、同じクラスの異なるオブジェクトが同じメソッドを使用しても異なる結果が得られることを意味し、この技術はポリモーフィズムと呼ばれます。ポリモーフィズムにより、ソフトウェアの柔軟性と再利用性が向上します。

クラス定義

クラスには、独自の定数、変数 (「プロパティ」と呼ばれる)、および関数 (「メソッド」と呼ばれる) を含めることができます。
多くのオブジェクト指向言語と同様、php も class キーワードとクラス名を使用してクラスを定義します。クラスの形式は次のとおりです。

コードは次のとおりです。

<?php
  class myobject{
    //……
    }
?>

定義: 羽毛の鳥は群れを成し、同様の特性を持つオブジェクトはクラスにグループ化されます。クラスはこれらの類似したオブジェクトを定義し、同じプロパティとメソッドを持ちます。クラスは、クラスの定義と呼ばれる類似のオブジェクトの記述であり、そのクラスのオブジェクトの設計図またはプロトタイプです。

クラスのオブジェクトは、クラスのインスタンスと呼ばれます。クラスのインスタンスを作成するには、new キーワードを使用する必要があります。

<?php
//类的定义以关键字class开始,类的命名通常以每个单词第一个字母大写
    class nbaplayer{
        public $name = "jordan"; //定义属性
        public $height = "198cm";
        public $team = "bull";
        public $playernumber = "23";
        //定义方法
    public function run(){
        echo "running\n";
    }
    public function dribblr(){
        echo "dribbling\n";
    }
    public function pass(){
        echo "passing\n";
    }
}
    //类到对象的实例化
    //类的实例化为对象时使用关键字new,new之后紧跟类的名称和一对括号
    $jordan = new nbaplayer(); 
    //对象中的属性成员可以通过"->"符号来访问
    echo $jordan->name."\n";
    //对象中的成员方法可以通过"->"符号来访问
    $jordan->dribble();
    $jordan->run();
?>

メンバー メソッド

クラス内の関数はメンバー メソッドと呼ばれます。関数とメンバー メソッドの唯一の違いは、関数は独立した関数を実装するのに対し、メンバー メソッドはクラス内の動作を実装し、クラスの一部であることです。
上記の myobject クラスを展開し、メンバー メソッドを追加しましょう。コードは次のとおりです:

<?php
classmyobject{
   function getobjectname($name){
      echo "商品名称为:".$name;
   }
}
?>

このメソッドの機能は、製品名を出力することです。製品名は、メソッドのパラメータ。
クラスは抽象的な記述であり、同様の機能を持つオブジェクトのコレクションです。クラス内のメソッドと変数を使用する場合は、まずそれらをエンティティ、つまりオブジェクトに実装する必要があります。

クラス定数
変数があるので、当然定数もあります。定数とは、変化しない量であり、一定の値です。よく知られている定数は pi です。定数を定義するには、次のようなキーワード const を使用します。
constpi=3.14159;

コンストラクター

php 5 では、開発者がクラス内のコンストラクターとしてメソッドを定義できます。コンストラクターを持つクラスは、新しいオブジェクトが作成されるたびにこのメソッドを呼び出すため、オブジェクトを使用する前に初期化作業を行うのに非常に適しています。


デストラクター

<?php
//类的定义以关键字class开始,类的命名通常以每个单词第一个字母大写
    class nbaplayer{
        public $name = "jordan"; //定义属性
        public $height = "198cm";
        public $team = "bull";
        public $playernumber = "23";
        //构造函数,在对象被实例化的时候自动调用
        function __construct($name,$height,$weight,$team){
            echo "it is an  nbaplayer constructor\n";
            $this->name = $name;
            //$this是php里面的伪变量,表示对象自身。可以通过$this->的方式访问对象的属性和方法
            $this->height = $height;
            $this->weight = $weight;
            $this->team = $team;
        }
        //定义方法
    public function run(){
        echo "running\n";
    }
    public function dribblr(){
        echo "dribbling\n";
    }
    public function pass(){
        echo "passing\n";
    }
}
    //类到对象的实例化
    //类的实例化为对象时使用关键字new,new之后紧跟类的名称和一对括号
    $jordan = new nbaplayer("jordan","198cm","98kg","bull");   
    //对象中的属性成员可以通过"->"符号来访问
    echo $jordan->name."\n";
    //对象中的成员方法可以通过"->"符号来访问
    $jordan->dribble();
    $jordan->run();
    //每一次用new实例化对象的时候,都会用类名后面的参数列表调用构造函数
    $james = new nbaplayer("james","203cm","120kg","heat")
    echo $james->name."\n";
?>

デストラクターは、オブジェクトへの参照がすべて削除された場合、またはオブジェクトが破棄されるときに明示的に実行された場合に発生します。

オブジェクトリファレンス

<?php
//类的定义以关键字class开始,类的命名通常以每个单词第一个字母大写
    class NbaPlayer{
        public $name = "Jordan"; //定义属性
        public $height = "198cm";
        public $team = "Bull";
        public $playerNumber = "23";

        //构造函数,在对象被实例化的时候自动调用
        function __construct($name,$height,$weight,$team){
            echo "It is an  NbaPlayer constructor\n";
            $this->name = $name;
            //$this是PHP里面的伪变量,表示对象自身。可以通过$this->的方式访问对象的属性和方法
            $this->height = $height;
            $this->weight = $weight;
            $this->team = $team;
        }
        //析构函数,在程序执行结束的时候会自动调用
        //析构函数通常被用于清理程序使用的资源。比如程序使用了打印机,那么可以再析构函数里面释放打印机资源
        function __destruct(){
            echo "Destroying".$this->name."\n";
        }
        //定义方法
    public function run(){
        echo "Running\n";
    }
    public function dribblr(){
        echo "Dribbling\n";
    }
    public function pass(){
        echo "Passing\n";
    }
}
    //类到对象的实例化
    //类的实例化为对象时使用关键字new,new之后紧跟类的名称和一对括号
    $jordan = new NbaPlayer("Jordan","198cm","98kg","Bull");   
    //对象中的属性成员可以通过"->"符号来访问
    echo $jordan->name."\n";
    //对象中的成员方法可以通过"->"符号来访问
    $jordan->dribble();
    $jordan->run();
    //每一次用new实例化对象的时候,都会用类名后面的参数列表调用构造函数
    $james = new NbaPlayer("James","203cm","120kg","Heat")
    echo $james->name."\n";
    //对象的引用用于访问对象的属性和方法,$james,$james1和$james2都是对象的引用
    //$james和$james1是对象的两个独立引用
    //$james2是$james的影子,使用对象的同一个引用,任何一个赋值为null相当于删除了同一个引用
    $james1 = $james;
    $james2 = &$james
    $james = null;
    echo "from now on James will not be used.\n"
?>


声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。