找回密码
 立即注册
搜索
查看: 1924|回复: 0

[面向对象] 【OOP代码示例】常见的关键字

[复制链接]

581

主题

110

回帖

4066

积分

管理员

积分
4066

众神之神

发表于 2016-1-27 17:56:04 | 显示全部楼层 |阅读模式
final 关键字
  1. <?php
  2. //final关键字修饰的类 是最终的类不能被继承
  3. final class demo{

  4.     //final关键字修饰的成员方法 是最终版本的方法不能被重写
  5.    final public function say(){
  6.         echo "demo say";
  7.     }
  8. }

  9. class demo1 extends demo{

  10.     public function say(){
  11.         echo "demo1 say";
  12.     }
  13. }

  14. $d1 = new demo1();
  15. $d1 -> say();
复制代码

static 关键字
  1. <?php
  2. class demo{
  3.     //static 如果修饰成员属性。这个成员属性就是静态的成员属性
  4.     static public $name = "zhangsan";
  5.     static public $num = 0;     //静态的成员属性只能初始化一次。所有实例化的对象访问的都是同一个静态成员属性

  6.     public function __construct(){
  7.         self::$num++;
  8.     }


  9.     //static 如果修饰成员方法。这个方法就是静态的成员方法
  10.     static public function say(){
  11.         //self 代表本类
  12.         return self::$name;     //在类的内部访问静态成员属性  self::成员属性名
  13.     }
  14. }

  15. echo demo::$name;       //在类的外部访问静态的成员属性。类名::成员属性名
  16. echo demo::say();       //在类的外部访问静态的成员方法  类名::成员方法名

  17. $d1 = new demo();
  18. echo "<br />";
  19. echo demo::$num;
  20. $d2 = new demo();
  21. echo "<br />";
  22. echo demo::$num;
复制代码

单例设计模式
  1. <?php
  2. class DB{

  3.     static $obj = null;     //声明一个变量的成员属性。主要用静态成员属性只能初始化一次的特性。把它作为标识

  4.     //用于链接数据库
  5.     private function __construct(){
  6.         echo "mysql linked....";
  7.     }

  8.     //静态的成员方法可以不需要对象就可以直接访问。这个方法用于得到对象
  9.     static function getObj(){
  10.         //判断静态成员属性是否是初始值
  11.         if(is_null(self::$obj)){
  12.             //如果是初始值。就实例化对象
  13.             self::$obj =  new self(); //把对象赋值给静态的成员属性
  14.         }
  15.         //把静态成员属性中的对象返回
  16.         return self::$obj;
  17.     }

  18.     public function select(){
  19.         echo "select data....";
  20.     }
  21. }

  22. var_dump(DB::getObj());
  23. var_Dump(DB::getObj());
  24. var_Dump(DB::getObj());
复制代码
const 关键字
  1. <?php
  2. class demo{
  3.     //常量定义时就要赋初始值
  4.     //常量一但定义就不能修改
  5.     //如果是多个单词组成的常量名要用下划线分隔
  6.     const HOST = '127.0.0.1';
  7.     const DB_NAME = 'jike';

  8.     public function getConst(){
  9.         //在类的内部访问常量 self::常量名
  10.         return self::DB_NAME;
  11.     }
  12. }

  13. //在类的外部访问常量 类名::常量名
  14. echo demo::HOST;
  15. echo "<hr />";
  16. $demo = new demo();
  17. echo $demo -> getConst();
复制代码

instanceof 关键字
  1. <?php

  2. class demo{

  3. }

  4. class demo1 extends demo{

  5. }

  6. $demo = new demo();
  7. $demo1 = new demo1();

  8. //instanceof 可以用于判断一个对象是否由一个类或这个类子类实例化来的
  9. var_Dump($demo instanceof demo);
  10. var_dump($demo1 instanceof demo1);
  11. var_dump($demo instanceof demo1);
  12. var_Dump($demo1 instanceof demo);
复制代码


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|十三博客 ( 鲁ICP备2023000528号 )

GMT+8, 2026-6-1 17:26 , Processed in 0.053934 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表