用穿越火线快速入门php面向对象

复制代码 代码如下:

  <?php

  /*

  *用穿越火线快速入门php面向对象!

  *php目前已经成为国内的主流web developer的首选开发语言,其强大的面向对象容易使初学者找不到思绪,一头雾水!

  *,借助此文希望对初学者有所帮助,假设Crossfire用php来开发.

  * 1类与对象

  */

  class Crossfire

  {

  public $Category='1,2,3'; //枪械种类,3个选择武器类别

  public $Weapon='ak|awp|m4a1';//购买的武器,拥有的武器

  public $Flashlight=true;//是否购买闪光弹

  public $Bomb=false; //购买了闪光同等条件下不能再次购买手雷

  function attack()

  {

  //攻击的代码 $this->Weapon;使用武器

  }

  function repair()

  {

  //修理武器的代码

  }

  function destroy()

  {

  //武器坏了自动销毁代码

  }

  /*

  * 我们把cf看成是一个类,cf里面有主武器,副武器,枪械,刀类,弹物,防弹衣,喷图等等..

  * 以上都是类中的成员属性,假如武器坏了,那么我们就得维修,维修就是类的成员方法!

  * 每种枪械都有不同的威力,不同的子弹数量,大小不同但是都是武器类,这是类和对象的关系(类的实例化结果就是对象)。

  *

  */

  function __construct()

  {

  //武器维修 $this->repair();

  }

  function __destruct()

  {

  //武器超过耐久自动消失 $this->destroy();

  }

  private function buy()

  {

  //购买武器私有属性代码

  }

  private function __get()

  {

  //调用购买的武器代码

  }

  private function __set()

  {

  //给买的武器购买子弹数量代码

  }

  private function __isset()

  {

  //检查钱数是够购买子弹数

  }

  private function __unset()

  {

  //如果中途死亡自动掉落武器

  }

  }

  class role extends Crossfire

  {

  //个人角色继承cf的属性,角色可以使用购买,销毁上面的物品

  function attack()

  {

  Crossfire::attack();

  $this->Weapon='awm-a';

  //如果中途换枪,加入换枪的弹量,伤害!

  }

  final function vip()

  {

  //购买vip,final关键字是禁止方法和属性继承!vip是需要money购买,所以因此不能被继承!

  }

  public static $awm=100;//awm 伤害是固定的所以用静态

  public static function awm()

  {

  self::$awm;//awm攻击代码,self调用静态. 方法的重载

  }

  public function __toString()

  {

  return $this->repair(); //自动返回武器维修的费用

  }

  }

  interface map

  {

  //地图代码,一个子类只能继承一次父类,地图是每个玩家都要用的,显而意见继承是不能够满足需求的,接口为我们解决瓶颈!

  public function map1()

  {

  //黑色城镇

  }

  function map2()

  {

  //运输船

  }

  }

  interface vipmap extends map

  {

  //如果是会员就显示会员地图,继承接口总地图

  function _vipmap()

  {

  //vip建图颜色先是红色

  }

  function _vipmap1()

  {

  }

  }

  $cf=new Crossfire();

  echo $cf->Weapon;//输出拥有的武器!

  /*

  * $对象名称= new 类名称();

  创建新类我们使用new,我们新创建了一个cf类,$cb就是Crossfire的对象!

  &nb

  sp; 多态的应用,抽象类没有讲,当然一个完整的游戏是不可能从此简单的,只是做个比喻!

  */

  $cf2=clone $cf; //克隆操作表示所有玩家都使用此类!

  ?>