Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:写得不错, 继续努力
类是一个具备某种功能的抽象模型,是一个抽象的概念,只有在被实例化之后才能使用。对象是类进行实例化后的产物,是一个实体。类是对象的模板,对象是类的实例。
权限修饰符 class 类名{//定义类
权限修饰符 $属性名;//定义类属性
权限修饰符 function 方法名([参数]){}//定义类方法
}
$变量名=new 类名([参数]);//实例化类
$变量名->属性名;//访问类属性
$变量名->属性名=值;//为类属性赋值
$变量名->方法名([参数]);//访问类方法
self()
代替类名()
,避免修改类名时需要重复修改代码->
,在类中调用自身的属性和方法可使用$this->
操作符
function __construct([参数]){
//方法体
}
__
的为系统预定义的魔术方法,无需用户调用,在满足一定条件下会被自动调用public
,公共成员,可以在类内部、类外部和子类中被访问private
,私有成员,只能够在类内部被访问protected
,受保护成员,能够类内部和子类中被访问
class 类名 extends 父类名{
}
parnet()::
来访问父类的方法
trait 名称{
权限修饰符 $属性名;//定义属性
权限修饰符 function 方法名([参数]){}//定义方法
}
use 名称;//使用trait
use
关键字来使用
<?php
trait TropicalFruits{
public $litchi='我是荔枝';//公共成员
private $mango='我是芒果';//私有成员
protected $pineapple='我是菠萝';//受保护成员
public function setFruitName($litchi,$mango,$pineapple){
$this->litchi=$litchi;
$this->mango=$mango;
$this->pineapple=$pineapple;
echo $this->litchi.','.$this->mango.','.$this->pineapple;
}
}
class Fruit{
public $fruit='我是水果';
public function __construct($fruit){//构造方法
echo $this->fruit;
$this->fruit=$fruit;
}
public function eat(){
echo '每个水果有不同的食用方式';
}
use TropicalFruits;//使用trait
}
class Apple extends Fruit{
public function eat(){//重写父类eat()方法
echo '食用方式:洗净后,使用水果刀切块食用';
}
}
$apple=new Apple('我是苹果');
echo '<hr />';
echo $apple->fruit;
echo '<hr />';
$apple->setFruitName('荔枝','芒果','菠萝');
echo '<hr />';
$apple->eat();