• 什么是类

类是产生对象的工厂,它由属性和方法组成。属性代表对象的状态,方法代表对象的操作行为

  • 什么是对象

对象是由类产生,拥有该类定义的所以属性与方法。

  • 类与类(对象与对象)之间的关系(以电商为场景)

    1. 单向关联

对象A知道对象B,但对象B不知道对象A : 订单含有商品,但商品不包含订单

wKioL1htrUqiCBKHAABbeiYxucE216.png-wh_50

/** * 商品 * Class Goods */class Goods{    private $_name = null;    private $_price = 0;    public function __construct($name,$price) {        $this->_name = $name;        $this->_price = $price;    }    /**     * @return null     */    public function getName() {        return $this->_name;    }    /**     * @return int     */    public function getPrice() {        return $this->_price;    }}/** * 订单 * Class Order */class Order{    private $_goods = [];    public function addGoods(Goods $goods){        $this->_goods[] = $goods;    }}

    2. 双向关联

        对象A知道对象B,对象B也知道对象A,两个对象之间可以相互调用方法与属性。如:订单与客户之间的关系

    

class Customer{    public $orders=[];    private $_id;    public function __construct($id) {        $this->_id = $id;    }    public function addOrder(Order $order){        $this->orders[] = $order;    }    public function getOrder(){        return $this->orders;    }}class Order{    public function getCustomerByOrderId($orderId){        //通过订单号,找到用户id        $id = 23;        return  new Customer($id);    }}