博客列表 >1. 写一个抽象类并继承它, 内容自定 2. 模仿课堂案例,写一个接口实现CURD操作, 并扩展一到二个方法 补1009作业

1. 写一个抽象类并继承它, 内容自定 2. 模仿课堂案例,写一个接口实现CURD操作, 并扩展一到二个方法 补1009作业

月迎下弦的博客
月迎下弦的博客原创
2019年10月16日 20:05:00981浏览

1. 写一个抽象类并继承它, 内容自定

abstract: 定义抽象方法/抽象类

类中只要有一个抽象方法, 该类就应该声明为抽象类

抽象类只能被继承,不能实例化,并且抽象方法必须在子类实现

实现抽象方法的子类方法可见性不能低于抽象方法原定义

抽象方法是public, 子类方法只能是public

抽象方法是protected, 子类方法只能是protected/public

****

类中只要有一个成员设置为抽象,该类就必须设置抽象类

一个类一旦被设置为抽象类,就具备了二个特点:

不能实例化

类中抽象方法,在子类中必须实现(全部),就是子类必须有父类的抽象方法

注意:

属性设置为抽象无意义, 抽象仅针对方法,类

子类的成员可见性必须等于或高于所继承的抽象类成员可见性,例如抽象类是proteced,子类可以是protected/pulic

子类重写的抽象方法可见性,究竟用protected/pulic, 要看这个子类是最终被客户端访问,如果是就public,如果不是protected

级别:

public 级别最高: A

protected 级别中等: B

private 级别最低: C

抽象类.jpg



2.模仿课堂案例,写一个接口实现CURD操作, 并扩展一到二个方法

1010_01.jpg

1010_02.jpg

1010_03.jpg

1010_04.jpg

1010_05.jpg

实例

<?php 
namespace _1015;
interface iCURD
{
    // 增加数据
    public function create($data);
    // 读取数据
    public function read();
    // 更新数据
    public function update($data,$where);
    // 删除数据
    public function delete($where);
}
// 创建DB类,实现iCURD接口,完成基本的数据库操作
class DB implements iCURD
{
    // 数据库的连接对象
    protected $pdo = null;
    // 数据表
    protected $table;
    // 构造方法:连接数据库,并设置默认的数据表名称
    public function __construct($dsn,$user,$pwd,$table='task')
    {       
            $this->pdo= new \PDO($dsn,$user,$pwd);
            $this->table=$table;
    }
    
    //  增加数据
    public function create($data)
    {
        //字段列表
        $fields = ' (name,age,sex,position,mobile,hiredate,display) ';
        //值列表
        $values = ' (:name, :age, :sex, :position, :mobile, :hiredate,:display)';
        //创建SQL
        $sql = 'INSERT INTO ' . $this->table.$fields. ' VALUES ' . $values;

        $stmt = $this->pdo->prepare($sql);
        $stmt->execute($data);
  
        return [
            //行数总和
                'count' => $stmt->rowCount(),
                // 最后插入的id
                'id' => $this->pdo->lastInsertId()
        ];
    }

    //读取数据
    public function read($fields = '*',$where='display=1',$limit='6,13')
    {
            //设置条件
            $where = empty($where) ? '' : ' WHERE ' . $where;
     
            //设置显示数量
            $limit= ' LIMIT ' . $limit;
            $sql = 'SELECT ' . $fields . ' FROM ' . $this->table. $where.$limit; 
     
            $stmt = $this->pdo->prepare($sql);
            $stmt->execute();
         return $stmt->fetchAll(\PDO::FETCH_ASSOC);
    }
    //更新数据
    public function update($data,$where)
    {
        $keyArr=\array_keys($data);
        $set= '';
        foreach ($keyArr as $value ) {
            $set .= $value . ' =:' .$value.', ';
        }
        $set = \rtrim($set,', ');
        $sql = 'UPDATE ' .$this->table . ' SET ' .$set . ' WHERE '.$where;
        $stmt = $this->pdo->prepare($sql);
        $stmt->execute($data);
        return $stmt->rowCount();

    }
    //删除数据
    public function delete($where)
    {
        $sql = 'DELETE FROM ' . $this->table . ' WHERE ' .$where;
        $stmt = $this->pdo->prepare($sql);
        $stmt->execute();
        return $stmt->rowCount();
    }
}

// // 客户端代码
$dsn = 'mysql:host=127.0.0.1;dbname=test';
$user = 'root';
$pwd = 'root';
$db= new DB($dsn ,$user , $pwd);

//     foreach ($db->read() as $item ) {
//         \print_r($item); echo   '<br>';
// }
echo '<hr>';
//增加数据
// $data = [
//         'name' =>'郭靖',
//         'age' =>999,
//         'sex' =>1,
//         'position' =>'射雕英雄',
//         'mobile' =>88888888888,
//         'hiredate' =>\time(),
//         'display' =>1
// ];
//  $res = $db->create($data);
//  echo   '<span style="color:#eb6100">成功增加了:' . $res['count'] .'条记录,'.'</span>'. '<span style="color:#0f7884">新增的主键ID是:'.$res['id'].'</span>';

//  echo '<br><span style="color:#662a00">' ;
//  foreach ($db->read() as $item ) {
//     \print_r ($item); echo   '<br>';
// }
// echo '</span>';


//  更新数据
// $data = [
//         'age' =>9999,
//         'position' =>'抗金英雄'
// ];
// $where = 'task_id = 80';
// echo '<br>';
// echo   '<span style="color:#eb6100">成功更新了:' . $db->update($data,$where) .'条记录,'.'</span>';
// echo '<br><span style="color:#662a00">' ;
// foreach ($db->read() as $item ) {
//    \print_r ($item); echo   '<br>';
// }
// echo '</span>';

// 删除
// $where = 'task_id=11';
// echo    '成功删除了:' . $db->delete($where) . ' 条记录';

$data = [
          'display' =>0
];
$where = 'position = \'射雕英雄\'';
echo   '成功清空了:' . $db->update($data,$where). ' 条记录';
echo '<br>';
echo '<br><span style="color:red">' ;
foreach ($db->read() as $item ) {
   \print_r ($item); echo   '<br>';
}
echo '</span>';

运行实例 »

点击 "运行实例" 按钮查看在线实例


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议