Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:类与对象有意思吧
<?php
//类的声明
class Users
{
//类的构造方法
public function __construct()
{
}
}
//类的实例化:用new来调用
$user = new Users();
//动态类:再类名放在一个变量当中
$class = "Users";
$obj = new $class();
<?php
//类的声明
class Users
{ //类成员:类属性·类方法
//类属性
//public 公共成员:类的内外部都可访问,都可见
public $uname ="一页书";
public $arr = [111,222,333];
public $level = '黄金';
//静态属性
public static $view = '霹雳侠影';
//抽象属性:没被初始化的属性,默认为null
public $abstract;
//类方法
public function fun(){
//实例化
//self:类引用,直接用引用类名
// $user = new self;
// return "姓名:{$user->uname},级别:{$user->level}";
//$this:
return "姓名:{$this->uname},级别:{$this->level}";
//备注1:使用$this,则可不要$user = new self;
//备注2:现在普通方法可以调用静态成员,但不推荐使用
}
//类方法访问外部成员,需要用参数传入
public function fun1($outfun,$outname)
{
return '类方法访问外部成员==>'.$outfun().$outname;
}
//静态方法:不依赖示例,可以直接调用;静态方法只调用静态成员
public static function fun2(){
//静态成员是类,不属于类示例,不能用$this引用示例
return self::$view;
}
}
//类的实例化:用new来调用
$user = new Users();
//访问正常属性
echo "访问正常属性:".$user ->uname.",数组元素:".$user->arr[2];
echo "<br>";
//访问静态属性:类名::属性
echo "访问静态属性:".Users::$view;
echo "<br>";
//访问抽象属性
var_dump($user->abstract);
echo "<hr>";
//访问类方法
echo "访问普通类方法=>".$user->fun();
echo "<br>";
//访问类外部成员:外部函数(匿名函数),外部变量
//外部函数
$outfun =function()
{
return "欢迎";
};
//外部变量
$outname ='经典款';
echo $user->fun1($outfun,$outname);
echo "<br>";
//访问静态方法
echo "访问静态方法==>".$user->fun2();
<?php
//类的访问权限
class Users
{
// public:公共成员,类的内外部及子类皆可调用
// private:私有成员,仅限类的内部调用
// protected:受保护成员,仅限类的内部和子类调用
public $title='圣墟';
private $author='辰东';
protected function fun(){
return "书名:".$this->title.",作者:".$this->author;
}
}
//子类
class Novel extends Users
{
protected $leve = "白金作家";
public function fun12(){
return $this->fun().",".$this->leve;
}
}
//实例化
echo "父类中访问==》".(new Users)->title;
echo "<hr>";
$novel = new Novel();
echo "子类中访问==》".$novel->fun12();
<?php
//类的扩展
// final: 类前加禁止类扩展
class Users
{
// public:公共成员,类的内外部及子类皆可调用
// private:私有成员,仅限类的内部调用
// protected:受保护成员,仅限类的内部和子类调用
public $title='圣墟';
private $author='辰东';
// final: 方法前加:禁止重写
public function fun(){
return "书名:".$this->title.",作者:".$this->author;
}
}
//子类(扩展类)
class Novel extends Users
{
//1.扩展
//属性扩展
protected $leve = "白金作家";
//方法扩展
public function fun12()
{
return parent::fun().",".$this->leve;
}
//2.重写
// 属性重写
public $title='圣墟123456';
//方法重xie
public function fun(){
return "书名:".$this->title.",作者:".$this->author."级别:{$this->leve}";
}
}
//实例化
$novel = new Novel();
echo "子类中访问方法扩展==》".$novel->fun12();
echo "<hr>";
echo "子类中访问方法重写==》".$novel->fun();