登录  /  注册
博主信息
博文 33
粉丝 1
评论 0
访问量 20671
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
面向对象的相关操作
冰雪琉璃
原创
515人浏览过

对象,类,变量的区别

  1. 变量:实现数据的复用,函数是实现代码的复用
  2. 类是具有相同属性和方法的对象的集合
  3. 对象是复合数据类型,有权利对其中储存的变量进行操作的一组函数。

    面向对象

    1.面向对象(oop)的单位就是对象,对象是类实例化的结果

    类的自动加载

  4. 实现类的自动加载,要满足类文件的名称与类同名。

    类的自动加载的实例

    1. class Player{
    2. //成员属性一定要有范围访问修饰符 public protected private static
    3. public $name;//抽象属性没有赋值
    4. public $name="Jordan";
    5. public $height;
    6. public $team;
    7. protected $PlayerNum;
    8. private $weight;
    9. public function __construct($name,$height,$team,$weight){
    10. //初始化类成员,让类实例化的状态稳定下来
    11. //步骤1:自动生成一个类实例
    12. $obj=new Player;
    13. // 步骤2对对象的属性进行初始化赋值
    14. $this->name=$name;//$this代表本对象,作用是完成内部成员的访问
    15. $this->height=$height;
    16. $this->team=$team;
    17. $this->weight=$weight;
    18. //步骤3:返回对象 return $obj;
    19. }
    20. //成员实例方法
    21. public function jog(){
    22. echo "$this->name is jogging,his weight is $this->weight <br/>";
    23. }
    24. public function shoot(){
    25. echo "$this->name is shooting,his height is $this->height <br/>";
    26. }
    27. }
    28. $npl=new Player;
    29. //调用(对象引用->属性名称)
    30. echo $npl->name;
    31. echo '<hr/>';
    32. //对象属性赋值
    33. $npl->height='198cm';
    34. echo $npl->height;
    35. echo '<hr/>';
    36. //对象方法的访问
    37. echo $npl->jog();

    总结

  5. protected受保护的成员,仅仅限制在子类和本类中使用
  6. private私有成员,仅仅限制在本类中使用,给其赋值的方法有在构造函数中调用,也可以通过魔术方法_set.
  7. 魔术方法名称:由系统调用 _set ,_get, _call, _callstatic, _construct.
  8. construct 构造器其作用是:
    • 对对象的公共属性进行初始化赋值
    • 记录类实例化的次数

      类的静态成员static

      1.静态成员只能由类来调用,所有的对象共享
      2.::self访问静态成员独有方法
      1. class User
      2. {
      3. public static $name="胡歌";
      4. protected $_config=['
      5. auth-on'=>'true','auth-type'=>1,//1代表实施认证,2代表登录认证
      6. ];
      7. public static $nation="China";
      8. private static $salary;
      9. static $count;
      10. public function __construct($name,$salary){
      11. //访问静态成员::self(独有方法)
      12. self::$salary=$salary;
      13. self::$name=$name;
      14. self::$count++;
      15. }
      16. public static function getCount(){
      17. return sprintf("User类被实例化了%d次<br/>",self::$count);
      18. }
      19. }
      20. //对类中的静态成员属性进行赋值
      21. User::$count=0;
      22. //实例化类
      23. $user=new User("张三","20000");
      24. //通过对象的引用访问静态成员
      25. echo $user->getCount();
      26. //同上一样效果
      27. echo User::getCount();
      28. echo User::$name;//张三
      1. //在静态成员方法中访问非静态成员属性 protected $_config
      2. public function getConfig(){
      3. return printf('认证开关:%s<br/>,认证类型%d<br/>',$this->_config['auth-on'],$this->_config['auth-type']);
      4. }
      5. //调用非静态成员
      6. echo $user->getConfig();
      7. ###类的继承
      8. ```php
      9. //类的继承
      10. class son extends Product{
      11. //属性扩展
      12. private $num;
      13. //重写父类的构造器
      14. public function __construct($name,$price,$num){
      15. //parent关键字,调用父类的成员方法
      16. parent::__construct($name,$price);
      17. $this->num=$num;
      18. }
      19. //重写父类的普通方法
      20. public function show():string
      21. {
      22. return parent::show().",数量$this->$num 个";
      23. }
      24. public function total(){
      25. return "$this->name,总计:".($this->price*$this->num)."元";
      26. }
      27. }
批改老师:灭绝师太灭绝师太

批改状态:合格

老师批语:是单例模式, 在多次页面级访问时共享有且唯一一个对象实例.
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学