【PHP7 面向对象 笔记一】面向对象的相关概念

一、什么是类?

  把具有相似特征和行为的对象归为一类,类定义了相似对象拥有的相同属性及方法,类是模板或者说是原型,通过类这个模板及属性的变换才会有不同的对象,也是通过属性行为确定一类。

  对象-是类的实例。

  类的对象称为类的一个实例,例如:明星这个类,然后才有刘亦菲,赵薇这些明星,在编程当中是先有类,然后才有对象的。


二、什么是对象?

  世间万物皆对象:我、你、张三、苹果、电脑等。

  对象是指具备某种功能属性的实体,一切可见之物都是对象。一切不可见之物(抽象事物)也是对象。


三、类的三大特征

1) 封装

  找到变化并且把它封装起来,你就可以在不影响其它部分的情况下修改或扩展被封装的变化部分,这是所有设计模式的基础,就是封装变化,因此封装的作用,就解决了程序的可扩展性。

2) 继承

  子类继承父类,可以继承父类的方法及属性,实现了多态以及代码的重用,因此也解决了系统的重用性和扩展性。但是继承破坏了封装,因为他是对子类开放的,修改父类会导致所有子类的改变,因此继承一定程度上又破坏了系统的可扩展性,所以继承需要慎用。

3) 多态

  接口的多种不同的时下方式即为多态。接口是对行为的抽象。


四、对象的特征

  对象包含两个部分

1) 对象的组成元素

  也就是对象的属性,或者成员变量,也就是对象的一些特征,比如大象的特征蓝颜色、名字叫做PHP的大象,就是该事物的描述信息。

2) 对象的行为

  用于描述对象能做什么,又被称之为方法,比如大象能够用鼻子甩水,刘亦菲会演戏,这些都是行为。


五、类与对象的区别与联系

1) 类是抽象的,概念的,代表一类事物,比如人类,猫类…;
2) 对象是具体的,实际的,代表一个具体事物;
3) 类是对象的模板,对象是类的一个个体实例。


六、类的声明

1) 基本语法
class 类名
{
    public 成员变量

    public function 成员方法()
    {

    }

}

类的定义:以 class 开始,后面跟着类名,以中括号开始及结束。

2) 举例
/*
 * class Animal 文件名与类名一致
 */
class Animal
{
    public $name; // 类中的变量称为属性(成员变量)
    public $length;

    /*
     * 类中的函数称为方法
     * 函数需要返回值,return 后面代码不会再执行
     */
    public function eat()
    {
        return '大象吃草';
    }

    public function run()
    {
        echo '奔跑';
    }

}


七、类的实例化

  通过类这个模板来创建一个对象。

-通过明星这个类创建一个刘亦菲或者范冰冰、李冰冰
实例化

八、创建对象

1) 基本语法
$对象名 = new 类名();
$对象名 = new 类名;
2) 对象-如何访问(使用)对象的属性?
$对象名->属性名;

-> 称为 对象运算符

3) 举例1:实例化上面的类
$elephant = new Animal();
var_dump($elephant->eat());
echo '<br>';
var_dump($elephant->run());

完整代码如下:

class Animal{
    public $name;
    public $length;

    public function eat()
    {
        return '大象吃草';
    }

    public function run()
    {
        echo '奔跑';
    }
}

// 实例化
$elephant = new Animal();
var_dump($elephant->eat());
echo '<hr>';
var_dump($elephant->run());

运行结果:

返回值为空

注:不要在方法的内部用输出(var_dump或者echo),否则返回值会为null。

4) 举例2:动态的改变变量的值
class Animal{
    public $name;
    public $length;

    public function eat($name, $action)
    {
        return $name .'吃'. $action;
    }

}
$elephant = new Animal();
var_dump($elephant->eat('老虎', '肉'));
echo '<hr>';
var_dump($elephant->eat('大象', '草'));

运行结果:

动态的改变变量的值

猜你喜欢

转载自blog.csdn.net/studyphp123/article/details/82527551