php部分---面向对象静态、抽象类、oop接口、加载类、魔术方法、关键字。

静态  static关键字

普通成员
普通成员是属于对象的

静态成员
静态成员是属于类的

普通方法里面可以调用静态成员
静态方法里面不能调用普通成员
self关键字 在类里面代表该类

复制代码
普通类
class Ren{public $name="张三";public static $zhongzu; //静态成员普通方法function Say(){echo self::$zhongzu."你好";}
复制代码
复制代码
静态类
static function Run(){echo $this->name;}}Ren::$zhongzu = "民族";Ren::Run();$r = new Ren();$r->Say();
复制代码
复制代码
class myclass{    static $count;//声明一个静态变量,用来统计对象创建的次数    function __construct()//声明一个静态方法,在类外面直接使用类名就可以调用    {    self::$count++;//在方法中使用self访问静态成员并返回        }    static function getcount()//声明一个静态方法,在类外面直接使用类名就可以调用    {    return self::$count;    //在方法中使用self 访问静态成员并返回    }    }myclass::$count=0;//在类外面使用类名访问类中的静态成员,为其初始化赋值$myc1=new myclass();//创建第一个$myc2=new myclass();//创建第二个$myc3=new myclass();//创建第三个echo myclass::getcount()."<br>";//输出3echo $myc3->getcount();//输出3
复制代码

抽象类 abstract关键字

不能被实例化
做为父类使用

复制代码
abstract class YunSuan//定义一个抽象类{public $a;public $b;function Suan(){}}class Jia extends YunSuan//定义一个jia类继承与上边的抽象类{function Suan(){return $this->a+$this->b;}}class Jian extends YunSuan//定义一个jian类继承与上边的抽象类
{ 

function Suan()
{

return $this->a-$this->b;
}
}

class Cheng extends YunSuan//定义一个jian类继承与上边的抽象类

{
function Suan()
{

return $this->a*$this->b;
}
}

$jia = new jia();
$jia->a=10;
$jia->b=5;
echo $jia->Suan();
$jian = new jian();
$jian->a=10;
$jian->b=5;
echo $jia->Suan();

$cheng = new cheng ();
 $cheng->a=10; 
$cheng->b=5;
echo $cheng->Suan();
复制代码

 

接口  关键词interface     implements
极度抽象的类
接口里面的方法主要是用来控制子类必须实现该类里面所有方法

复制代码
interface IUSB{    function Read(); //接口里面只声明函数名function Write(); }class ShuBiao implements IUSB{function Read(){echo "鼠标插上了";}function Write(){echo "给鼠标传了数据";}}$s = new ShuBiao();$s->Read();
复制代码

加载类

复制代码
include("./Ren.class.php");//"./"include "./Ren.class.php";require("./Ren.class.php");require "./Ren.class.php";require_once("./Ren.class.php");require_once "./Ren.class.php";
复制代码

 

自动加载类
1.所有的类文件要放在同一个文件夹下
2.所有类文件的命名规则要一致
3.所有类文件的名字要和类名保持一致

复制代码
function __autoload($classname){require "./libs/".$classname.".class.php";}$r = new Ren();var_dump($r);$d = new cat();
复制代码

克隆对象 关键字clone

复制代码
class Ren{public $name;function Run(){echo "跑";}function __tostring(){return "name变量代表的是人员名称,Run方法是一个跑的方法";}//克隆对象的时候自动调用的方法function __clone(){$this->name = "李四";//克隆之后给name赋新值}}$r = new Ren();$r->name = "张三";$r1 = clone $r;//克隆的语法var_dump($r1);var_dump($r);*/
复制代码

魔术方法

构造函数,对类里面成员进行初始化

function __construct(){}

 

析构函数,在对象释放的时候自动执行

function __destruct(){}

 

__set方法

function __set($name,$value){}

 

__get方法

function __get($name){}

 

__tostring()方法

function __tostring(){}

 

__clone方法

function __clone(){}

 

__autoload方法

function __autoload($classname){}

 

__tostring()能够直接输出对象

复制代码
class Ren{public $name;function Run(){echo "跑";}function __tostring()//不加这个方法,是不能直接输出所造对象的,在类中添加此方法,可以直接输出对象{return "name变量代表的是人员名称,Run方法是一个跑的方法";}}$r = new Ren();echo $r;
复制代码

 

关键字

1.class 定义类

2.访问修饰符 public protected private
3.new 造对象的关键字
4.$this 代表该对象本身
5.extends 代表继承
6.parent 代表父类
7.static 代表静态
8.self 代表该类
9.abstract 代表抽象,定义抽象类
10.interface 代表接口,用来定义接口
11.implements 实现接口
12.clone 代表克隆
13.override 重写
14.overload 重载
15.oop 代表面向对象
16.final 写在定义类前面的,将该类定义为最终类,则该类不能被继承

 

 

文章转载于:https://www.cnblogs.com/shenzikun1314/p/6396251.html

原著是一个有趣的人,若有侵权,请通知删除

本博客所有文章如无特别注明均为原创。
复制或转载请以超链接形式注明转自起风了,原文地址《php部分—面向对象静态、抽象类、oop接口、加载类、魔术方法、关键字。
   

还没有人抢沙发呢~