作业一:
代码演示:
<?php
//定义类
class Sum
{
static $count=0;//静态变量
public $a;//公共称员
private $c=14;//私有称员
protected $age=27;//保护称员
public function __construct($a)//构造函数
{
$this->a=$a;
}
public function sum(){
return $this->a += 1;
}
public function min($x,$y){
return $x+$y+$this->c;
}
public function write() {
return $this->age;
}
}
//定义子类
class SumAdd extends Sum {
public $name;
public $city;
public function __construct($a,$name,$city)
{
parent::__construct($a);//引用父类的构造函数
$this->name=$name;
$this->city=$city;
}
public function get_info() {
return '我是'.$this->name.'在'.$this->city.$this->a.'年';
}
// public function sum(){//父类函数的重写
// return $this->a *= 1;
// }
}
$sum=new Sum(5);//类的实例化(对象)
echo $sum->a,'<br>';//访问类中公共成员
echo $sum->write(),'<br>';//通过函数访问保换
echo $sum->sum(),'<br>';
echo $sum->min(5,6),'<br>';
echo $sum->min(7,8).'<br>';
echo Sum::$count;//::访问类中的常量
echo '<hr>';
$add=new SumAdd(5,'ldy','郑州');//子类的实例化
echo $add->get_info(),'<br>';
echo $add->sum();//子类中无sum();函数时,调用父类的
实现效果
知识点总结:
类的命名(与其他命名的区别)
1、变量命名:以$开头,符合标识符规则
2、函数命名:以function声明,函数名符合标识符规则
3、类的名命名:以class声明,名字的首字母要大写,双驼峰结构
4、常量命名:应该全部使用大写字母
类的常见关键字:
1、成员关键字:public、protected、private、static、
2、继承关键字:extends ::范围解析符 例如 parent::__construct();
3、类中引用自身关键字:$this->(后跟$变量名和函数名)
4、类的实例化关键字:new($add=new SumAdd();
)
5、通过实例访问类里面公共变量和函数:$sum->a
和$add->get_info()
;
6、访问类中的静态变量:Sum::$count;
7、构造函数:function __construct(){}
8、trait:(方法集)改变单继承模式,像一种特殊类,但不能被实例化,一般在父类中引用(引用关键字:use)在子类中调用,优先级是,子类覆盖trait,trait覆盖子类继承的父类。