php面向对象实践,PHP面向对象学习一:对象基础实践

引语:阅读深入PHP《面向对象、模式实践》书实践

~~~

/**

* 对象基础归纳整理 (来源:深入PHP《面向对象、模式与实践》)

* ===============知识点================

* 类和对象:声明类及实例化对象

* 构造方法:自动加载对象

* 基本数据类型和类的类型:为什么类型很重要

* 继承(inheritance)

* 可见性:整合对象接口并保护类中的方法和属性不受干涉(public,protected,private)

* ===============基本类型和PHP的类型检查函数==============

* is_bool() ------ 布尔型 ------ 值为true/false

* is_integer() ------ 整型 ------ 整数

* is_double() ------ 双精度型 ------ 有小数点的数字

* is_string() ------ 字符串 ------ 字符数据

* is_object() ------ 对象 ------ 对象

* is_array() ------ 数组 ------ 数组

* is_resource() ------ 资源 ------ 用于识别和处理外部资源(如数据库和文件)的句柄

* is_null() ------ NUll ------ 未分配的值

* ===============对象类型=============

* shopProudctWriter类的write()方法 接受一个 shopProudct对象

* 为什么不直接在shopProudct类直接增加一个write()方法呢?答案是 划分责任区

* shopProudct类负责管理产品数据,shopProudctWriter类负责写入数据

* @author liuxinming

*/

class shopProudct{

private $title;//产品名称

private $proudcerMainName;

private $proudcerFirstName;

protected $price;//产品价格

private $discount;//产品折扣

//构造方法会被自动调用,用来确保必要的属性被设置

public function __construct($title,$firstName,$mainName,$price){

$this->title=$title;

$this->proudcerFirstName=$firstName;

$this->proudcerMainName=$mainName;

$this->price=$price;

}

//获取MainName

public function getProudcerMainName(){

return $this->proudcerMainName;

}

//获取FirstName

public function getProudcerFirstName(){

return $this->proudcerFirstName;

}

//设置折扣

public function setDiscount($num){

$this->discount=$num;

}

//获取折扣

public function getDiscount(){

return $this->discount;

}

//获取产品标题

public function getTitle(){

return $this->title;

}

//获取折扣后的价格

public function getPrice(){

return $this->price-$this->getDiscount();

}

//

public function getSummaryLine(){

$base= $this->title.'('.$this->proudcerMainName.$this->proudcerFirstName.')';

return $base;

}

}

/**

* CD类 存放 播放时间

*/

class CDProudct extends shopProudct{

private $playLength=0; //播放时间

public function __construct($title, $firstName, $mainName, $price,$playLength){

parent::__construct($title, $firstName, $mainName, $price);

$this->playLength=$playLength;

}

//获取播放时间

public function getPlayLength(){

return $this->playLength;

}

//

public function getSummaryLine(){

$base=parent::getSummaryLine();

$base.='播放时间:'.$this->playLength;

return $base;

}

}

$test=new CDProudct('计算机书', 'PHP面向对象', '深入', '100', '20:00');

echo $test->getSummaryLine();

~~~

PS:系统的学习下面向对象,更好的记忆和达到一定重复率 这样熟记于心 可以更好的在设计模式中发挥所掌握的技术。

学习日记,也是为了做到重复率有效地记忆。

后面的章节会努力写的详细点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值