实验十六:类的属性及定义方法
类的变量成员叫做属性,属性声明语法public/protected/privated 变量
1、public关键字的用法,请看代码:
<?php
header("content-type:text/html;charset=utf-8");
class Student{
//属性声明为共有的
public $a = "sdfs";
public $b = array("a","b",3);
//PHP定界符:AAA为定界标识符,里面的内容全部输出
public $c=<<<AAA
hello world
AAA;
//标识符结束,单独写一行且顶格
}
$A=new Student();
print_r($A->b);
echo "</br>";
echo $A->a."</br>".$A->c;
?>
输出
实验十八:访问控制
这里以private为例子,给出代码如下:
<?php
header("content-type:text/html;charset=utf-8");
class Student{
//声明私有变量
private $name;
private $age;
private $sex;
//构造函数
function __construct($name,$age,$sex){
$this->name=$name;
$this->age=$age;
$this->sex=$sex;
}
//对象无法访问私有属性,但是通过魔术方法可以改变这一点 __get() __set()
function __get($proName){
return $this->$proName;
}
function __set($proName,$proValue){
$this->$proName=$proValue;
}
//构造函数访问私有属性
function may(){
return "我叫:$this->name 年龄:$this->age 性别:$this->sex";
}
//构造函数用来释放内存
function __destruct(){
echo "</br>运行结束,释放内存</br>";
}
}
$A =new Student("黑白",22,"男");
echo $A->name."<br>";
echo $A->may();
?>
输出
私有变量是不能被外部类所使用,通过结果可以看出魔术方法可以让私有变量被外部类所使用
实验十九、继承
1、创建父类的基本语法
class 父类名{
方法
}
1、创建子类的基本语法
class 子类名 extends 父类名{
方法
}
给出一个例子供大家理解子类与父类的关系
<?php
header("content-type:text/html;charset=utf-8");
//创建父类Person
class Person{
//创建父类方法
function read($name){
echo "[".$name."]喜欢文学</br>";
}
function doIng($name){
echo "[".$name."]喜欢打篮球</br>";
}
}
//创建子类Student
class Student extends Person{
//创建子类方法
function eat($name){
echo "[".$name."]喜欢糖果</br>";
}
//当子类中有与父类同名的方法时,就会覆盖父类的方法
function doIng($name){
echo "[".$name."]喜欢打游戏</br>";
}
}
//调用
$a = new Person();//创建父类对象
$H = new Student();//创建子类对象
$H->read("素白");//子类对象调用父类对象中的方法
$H->eat("素白");//子类对象调用自己的方法
echo "------------我是分隔符-----------</br>";
$a->doIng("素白");//父类对象调用自己的方法
$H->doIng("素白");//子类对象调用与父类同名的方法
$a->eat("素白");//父类对象调用子类对象中的方法
?>
输出
分析