zoukankan      html  css  js  c++  java
  • php面向对象和构造函数

    面向对象分为类和对象:

        类:由众多对象抽象出来的东西;

        对象:一切皆对象,由类实例化出来的;

      类的定义:

    class Ren{
        var $code;   //成员变量
        var $name;   //姓名
        var $sex;   //性别
        var $birthday;   //生日
        public function say(){
        echo "{$this->name}说话!";
        }
    }
    

      

    其中类名的首字母大写,$this写在类里面代表该对象(谁调用代表谁);

      实例化对象(object代表对象):

    $r = new Ren();
    $r->name = "张三";
    $r->code = "p001";
    $r->say();
    

      

    类里面所有的变量或函数都称作类的成员;

      访问修饰符:

        public:公有的,任何地方都可以使用(类里类外都可用);

        protected:受保护的,在外界访问不到,能在该类和子类中访问到;

        private:私有的,只能在该类访问;

        (之前定义用的var可变为访问修饰符);

        类里面的成员是属于对象的;

      面向对象和面向过程的区别:

        1.面向过程较为方便;

        2.面向对象结构更清晰;

        3.面向对象后期改动过更方便。

    面向过程做法:

      $r1 = 10;
    $r2 = 5;
    $mj = 3.14*$r1*$r1-3.14*$r2*$r2;
    echo $mj;
    

    面向对象做法:

    class Yuan{
        public $r; //半径
        //获取面积
        public function mianji(){
            return 3.14*$this->r*$this->r;
        }
    }
    $y1 = new Yuan();
    $y1->r = 10;
    $y2 = new Yuan();
    $y2->r = 5;
    $mjm = $y1->mianji()-$y2->mianji();
    echo $mjm;
    

      

    构造函数一般用于初始一些参数。

      特点为:1.写法特殊;  2.执行特殊。

      1.写法特殊:

       写法一:

    public function Ren(){ }
      写法二:
    public function __construct($sex){
            $this->sex = $sex;
        }

    这里用到的双下划线__,可自动调用;

      2.执行特殊:

        在$r = new Ren();时自动执行;

        析构函数:对象销毁前调用;

        public function __destruct(){echo "对象销毁了";}。

  • 相关阅读:
    设计模式_抽象工厂模式
    KMeans聚类算法Hadoop实现
    JDK核心JAVA源代码解析(1)
    pushlet单播与多播
    SQL 2008 R2数据库变为REPLICATION,日志不断增长并且不能截断和收缩的解决方式
    chrome插件的popup与跨域请求
    Ubuntu vim+ ctags(包括系统函数) + taglist 配置
    spring Valid @Pattern 常见的验证表达式
    spring boot 全局异常处理
    spring 事件使用
  • 原文地址:https://www.cnblogs.com/rose1324/p/8644357.html
Copyright © 2011-2022 走看看