PHP学习笔记之PHP面向对象(八)

来源:互联网 发布:淘宝多口袋工装休闲裤 编辑:程序博客网 时间:2024/05/16 13:47

常用格式

1.定义类

    class name{}

2.创建对象(实例化)

    $obj = new name();

3.访问对象中的成员

    $obj->attr;

4.const常量

可以在类中定义常量,即不会在类中改变的值.对于从该类实例化的任何对象来说,常量值在这些对象的整个生命周期中都保持不变

    echo self::PI;//类内部访问    echo 类名::PI //类外部访问

5.static静态属性与静态方法

使用 static 关键字可以用来标识成员属性,也可以用来标识成员方法,静态成员属于类所有,所以我们在静态方法里,不能使用 $this来引用静态成员

    //定义一个名为Person的类    class Person{        //设置常量attr为"常量"        const attr = "常量";        //设置静态变量$name为"aaa";        static $name = "aaa";        //设置公开变量 $age为"18";        public $age = 18;        //设置该类的show函数        function show(){            //输出常量attr 必须用 self::attr 的方式            echo self :: attr            //输出静态变量$name 也必须用self::$name的方式            echo self :: $name            //输出该类的一个公开变量            echo $this -> age;        }    }    //定义$obj为一个Person类    $obj = new Person();    //执行$obj的show()函数    $obj -> show();    //错误的输出常量方式    //echo $obj->attr;    //正确的输出常量方式    //echo Person::attr;    //输出类的公开变量,直接用->访问    echo $obj->age;    //输出类的静态变量    echo $obj::$name;    //输出类的所有属性    echo Person;

构造函数和析构函数

构造函数

通常用来对成员属性进行初始化赋值

    __construct($name,$age);

析构函数

与构造函数对应的就是析构方法,析构方法允许在销毁一个类之前执行一些操作或完成一些功能,比如说关闭文件,释放结果集等.析构函数不能带有任何参数,其名称必须是

    __destruct()
//定义类class Person{    //该类的构造函数    function __construct($name,$age){        $this->name = $name;        $this->age = $age;    }    //该类的show函数    function show(){        echo "姓名:$this->name"."<br>年龄:$this->age";    }    //该类的析构函数,造所有操作完成时触发    function __destruct(){        echo "完成";    }}$obj = new Person("abc",18);$obj->show();$obj->show();$obj->show();$obj->show();$obj->show();//最后一个show()执行完之后析构函数会执行$obj->show();

访问修饰符(作用域描述符)

访问修饰符允许开发人员对类的访问进行限制,这是PHP5的新特性

public公共修饰符

类的成员将没有访问限制,所有的外部成员都可以访问(读写)这个类成员

private私有修饰符

被修饰为private的成员,对于同一个类里地所有成员是可见的,即没有访问限制;但对于该类的外部代码是不允许改变甚至读操作,对于该类的子类,也不能访问

protected 保护修饰符

被修饰为protected的成员不能被该类的外部代码访问.但是对于该类的直接子类有访问权限,可以进行属性,方法的读写操作.被子类继承的protected成员,在子类外部同样不能被访问

class Person{    public $name = "abc";    private $age = 18;    protected $a = 123;    function show(){        echo $this -> name;        echo $this -> age;        echo $this -> a;    }}$obj = new Person();//public是公开的,外部也可以访问echo $obj -> name;//private是私有的,外部不能访问echo $obj -> age;//protected受保护的,外部不可访问echo $obj -> a;//extends创建person类的子类sonclass Son extends Person{    function show2(){        echo $this -> name;        //继承父级私有变量,无法访问        //echo $this -> age;        echo $this -> a;    }}$son = new Son();$son ->show();

封装

封装就是把对象的属性和行为结合成一个独立的相同单位,并尽可能隐蔽对象的内部细节

继承

面向对象开发方法建立在继承概念的基础上,这种策略提高了代码的重用性。

在PHP中,类继承通过 extends 关键字实现;

继承自其他类的类称为子类(child class 或 subclass)

子类所继承的类称为父类( parent class) 或 基类 (base class)

多态

对象的多态性是指在父类中定义的属性或行为被子类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个属性或行为在父类及其各个子类中具有不同的语义。

0 0
原创粉丝点击