Blogger Information
Blog 33
fans 1
comment 0
visits 21828
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
面向对象的相关操作
冰雪琉璃
Original
543 people have browsed it

对象,类,变量的区别

  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. }
Correcting teacher:灭绝师太灭绝师太

Correction status:qualified

Teacher's comments:是单例模式, 在多次页面级访问时共享有且唯一一个对象实例.
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post