百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>网页制作> php面向对象简略概括
分享文章到:

php面向对象简略概括

发布时间:09/01 来源:未知 浏览: 关键词:
根本知识

类:具有雷同属性或办法的一类汇合体。比方雪佛兰汽车是一个雪佛兰汽车类,奔腾汽车是一个奔腾汽车类,宝马汽车是一个宝马汽车类,而这三个类又是汽车大类的子类。
对象:类的一个详细实现,比方宝马Q5就是宝马汽车类的一个详细实现。对象地使用是放在内存中的。一下让我们理解一下对象在内存中的分配

5.png

使用面向对象,就是灵敏地使用以上两个知识点。让我们来创立和使用类与对象

<?php
    /**
    *创建一个类
    */
    class newClass{        public $a;        public $b;        public function funA(){            echo "I am function A";
        }        public function funB(){            echo "I am function B";
        }
    }    /**
    *使用类创立对象
    */
    $opt=new newClass();
    $opt->a="opt";//将opt对象中的a属性赋值为opt
    $opt->funA();//打印出"I am function A"?>


润饰符:在定义类与类中的属性时,我们可以使用如下三个润饰符,若不加,则默许为public
public:权限最大
protected:权限范畴在其本身与其子类
private:权限范畴仅在其本身
<font color="blue" size="4">结构函数与析构函数</font>:在我们对类实例化创立对象时,往往需要对对象停止初始化,这时,我们就需要在类中定义一个结构办法。当我们使用完对象时,就需要开释对象,以减少内存的使用,这时我们就需要使用析构办法。
在php中我们使用__construct()办法与__destruct(),如下代码

<?php
class newClass{
    public $a;
    public $b;
    public function __construct($a,$b){
        $this->a=$a;
        $this->b=$b;
        echo "我是结构函数";
    }
    public function __destruct(){
        echo "我是析构函数";
    }
}
?>

封装性

当我们开发一些重要的程序模块时,常常不但愿别人能轻易拜访这些程序模块的数据,因此需要对这些数据停止封装。这时我们要停止数据的拜访操纵,常常使用<font color="red">private</font>关键字来对这些属性与办法停止封装。
如下:

<?php
class privateClass
{
    private $a;
    private $b;
    private function privateFun()
    {
        echo "我是封装的办法";
    }
} ?>

这样,当我们创立对象时就不克不及调取私有的属性与办法。但是我们可以通过使用魔术办法来对这些私有属性与办法停止拜访。
__set()与__get()的使用
通过__set()办法我们可以通过对象直接设定成员属性值
通过__get()办法我们可以通过对象直接猎取成员属性值

<?php
class setClass
{        
     private $a;        
    private $b="ww";        
    public function __set($oldValue,$newvalue){ 
        $this->$oldValue=$newvalue;
    }        
    public function __get($newvalue){            
        return $newvalue;
    }
}
    $opt= new setClass();
    $opt->a="sss";//直接设定私有属性值
    echo $opt->b;//直接读取私有属性值
?>

__isset()与__unset()的使用
通过__isset()直接查看对象中私有属性可否存在
通过__unset()直接删除对象中的私有属性

<?php
class issetClass
{
    private $a;
    private $b = 'www';
    function __isset($privateName)
    {
        if (isset($privateName)) {
            return 1;
        } else {
            return 0;
        }
    }
    function __unset($privateName)
    {
        echo "烧毁" . $privateName;
    }
}
$opt = new issetClass();
echo isset($opt->$b);
var_dump(unset($opt->$b));?>

继承性

当我们编写多个类时,常常多个类具有雷同的属性与办法,为了简化代码我们引入了继承的概念,子类可以继承父类的一些属性与办法,减少了冗余代码地编写。

怎样编写继承类
我们使用关键字extends来编写子类

<?php
    class parentClass{
    }    
    class childClass extends parentClass{
    }    
?>

如上,childClass是parentClass的子类,php仅支撑单继承,即一个子类只要一个父类,但父类可以有多个子类。

重写父类办法
当父类中的办法不克不及知足子类的使用时我们可以重写父类办法。但当我们又想在子类使用父类的办法时,我们可以使用如下语法:parent::办法名几个重要的关键字

3.1 final

final可以润饰类与办法,不克不及润饰成员属性;
被final润饰的类不克不及继承,而用final润饰的办法在子类中不克不及被重写

3.2 static

static可以润饰成员属性与成员办法,不克不及润饰类;
使用static润饰的成员与办法可以通过类直接使用,使用如下语法:类名::\$属性名或办法名();
在类中使用时通过如下语法:self::\$属性名或办法名.

3.3 const

在类中声明常量使用const,而不是使用define();
比方 const TT=90当使用常量时直接使用如下语法self::常量名

3.4 instanceof

使用该关键字可以检测某个实例可否是某个类的实例。

3.5 trait

php只能停止单继承,但它同时供给了另类方式来停止代码复用,解决单继承问题。
如下

<?php

trait testA
{
    function a()
    {
    }
}

trait testB
{
    function b()
    {
    }
}

class testC
{
    use testA, testB;

    function c()
    {
    }
} ?>

抽象技术

用abstract关键字润饰的办法与类称为抽象办法或抽象类。
声明抽象类与抽象办法

<?php
abstract class testClass
{
$a;
$b;
    abstract function testFun();
    abstract function testFun1();
    public function optFun()
    {
        echo "抽象类中的抽象办法";
    }//抽象类可以有非抽象办法
}
class childClass extends testClass
{
    function testFun()
    {
        echo "子类中实现抽象办法";
    }
    function testFun1()
    {
        echo "子类实现抽象办法";
    }
}
abstract child1Class extends testClass
{
}//子类是抽象办法可以不实现父类的抽象办法?>

抽象技术为子类的声明供给了一种标准,限制了类的实例化(抽象类不克不及实例化)。

接口技术

接口是一种非凡的抽象类,接口中只能声明抽象类与常量
声明接口使用interface,实现接口使用implements,润饰符只能是默许的public;
一个子类可以继承多个接口,同时继承一个父类

<?php
interface newInterface
{
    const V = 12;
    abstract function fun1();
    abstract function fun2();
}
interface newInterface1
{
    abstract function fun3();
    abstract function fun4();
}
class parentClass
{
    function fun5()
    {
        echo "fun5";
    }
}
class optClass extends parentClass implements newInterface, newINterface1
{
    function fun1()
    {
        echo "fun1";
    }
    function fun2()
    {
        echo "fun2";
    }
    function fun3()
    {
        echo "fun3";
    }
    function fun4()
    {
        echo "fun4";
    }
} ?>

多态

在php中多态地实现需要一个类通过多个子类地继承实现,假如一个类的办法在多个子类中重写并实现不一样的功效,我们称之为多态。

引荐教程:《PHP教程

以上就是php面向对象简便概括的具体内容,更多请关注百分百源码网其它相关文章!

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有151人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板