面向对象的相关操作
![冰雪琉璃](/static/images/user_avatar.jpg)
- 冰雪琉璃原创转载
- 2021年05月13日 21:55:14552浏览
对象,类,变量的区别
- 变量:实现数据的复用,函数是实现代码的复用
- 类是具有相同属性和方法的对象的集合
- 对象是复合数据类型,有权利对其中储存的变量进行操作的一组函数。
面向对象
1.面向对象(oop)的单位就是对象,对象是类实例化的结果类的自动加载
- 实现类的自动加载,要满足类文件的名称与类同名。
类的自动加载的实例
class Player{
//成员属性一定要有范围访问修饰符 public protected private static
public $name;//抽象属性没有赋值
public $name="Jordan";
public $height;
public $team;
protected $PlayerNum;
private $weight;
public function __construct($name,$height,$team,$weight){
//初始化类成员,让类实例化的状态稳定下来
//步骤1:自动生成一个类实例
$obj=new Player;
// 步骤2对对象的属性进行初始化赋值
$this->name=$name;//$this代表本对象,作用是完成内部成员的访问
$this->height=$height;
$this->team=$team;
$this->weight=$weight;
//步骤3:返回对象 return $obj;
}
//成员实例方法
public function jog(){
echo "$this->name is jogging,his weight is $this->weight <br/>";
}
public function shoot(){
echo "$this->name is shooting,his height is $this->height <br/>";
}
}
$npl=new Player;
//调用(对象引用->属性名称)
echo $npl->name;
echo '<hr/>';
//对象属性赋值
$npl->height='198cm';
echo $npl->height;
echo '<hr/>';
//对象方法的访问
echo $npl->jog();
总结
- protected受保护的成员,仅仅限制在子类和本类中使用
- private私有成员,仅仅限制在本类中使用,给其赋值的方法有在构造函数中调用,也可以通过魔术方法_set.
- 魔术方法名称:由系统调用 _set ,_get, _call, _callstatic, _construct.
- construct 构造器其作用是:
- 对对象的公共属性进行初始化赋值
- 记录类实例化的次数
类的静态成员static
1.静态成员只能由类来调用,所有的对象共享
2.::self访问静态成员独有方法class User
{
public static $name="胡歌";
protected $_config=['
auth-on'=>'true','auth-type'=>1,//1代表实施认证,2代表登录认证
];
public static $nation="China";
private static $salary;
static $count;
public function __construct($name,$salary){
//访问静态成员::self(独有方法)
self::$salary=$salary;
self::$name=$name;
self::$count++;
}
public static function getCount(){
return sprintf("User类被实例化了%d次<br/>",self::$count);
}
}
//对类中的静态成员属性进行赋值
User::$count=0;
//实例化类
$user=new User("张三","20000");
//通过对象的引用访问静态成员
echo $user->getCount();
//同上一样效果
echo User::getCount();
echo User::$name;//张三
//在静态成员方法中访问非静态成员属性 protected $_config
public function getConfig(){
return printf('认证开关:%s<br/>,认证类型%d<br/>',$this->_config['auth-on'],$this->_config['auth-type']);
}
//调用非静态成员
echo $user->getConfig();
###类的继承
```php
//类的继承
class son extends Product{
//属性扩展
private $num;
//重写父类的构造器
public function __construct($name,$price,$num){
//parent关键字,调用父类的成员方法
parent::__construct($name,$price);
$this->num=$num;
}
//重写父类的普通方法
public function show():string
{
return parent::show().",数量$this->$num 个";
}
public function total(){
return "$this->name,总计:".($this->price*$this->num)."元";
}
}
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。