zoukankan      html  css  js  c++  java
  • 析构函数+类的三大特性——封装

    <?php
    class Person{
        var $Name;
        var $age;
        var $Sex;
        function say()
        { 
             echo "我的名字:".$this->Name."&nbsp;&nbsp;性别:".$this->Sex."&nbsp;&nbsp;年龄:".$this->age;
        }
        function walk()
        {    echo $this->Name."在散步!";}            
    }
    $p=new Person();
    $p1=new Person();
    
    $p->Name="simon";
    $p->age=21;
    $p->Sex="男";
    
    $p1->Name="diliya";
    $p1->age=20;
    $p1->Sex="女";
    
    echo $p->Name."&nbsp;&nbsp";
    echo $p->age."&nbsp;&nbsp";
    echo $p->Sex;
    $p->say();
    $p->walk();
    echo $p1->Name."&nbsp;&nbsp;";
    echo $p1->age."&nbsp;&nbsp;";
    echo $p1->Sex."&nbsp;&nbsp;";
    $p1->say();
    $p1->walk();
    var_dump($p);
    var_dump($p1);
    
    
    //析构函数 在对象销毁前调用
    class Ren{
        private $Name;
        private $age;
        private $Sex;
        function say()
        { 
             echo "我的名字:".$this->Name."&nbsp;&nbsp;性别:".$this->Sex."&nbsp;&nbsp;年龄:".$this->age;
        }
        function walk()
        {    echo $this->Name."在散步!";}    
        
        function __destruct()
        {
            echo "该对象销毁了";
        }    
        function Setage($a)//给age赋值
        {If($a>=20&&$a<=50)
            $this->age=$a;}    
        function Getage()  //取age的值
        {
            return $this->age;}
        
        function __set($Name,$value)//对类里边的私有成员进行赋值的魔术方法
        {   if($Name=="age")
            {if($value>20&&$value<50)
             {
                 $this->$Name=$value;
             }
            }
            else{ $this->$Name=$value;}
        }
        function __get($Name) //对类里边的私有成员进行取值的魔术方法
        {
           return $this->$Name;
            
        }
    }
    $r=new Ren();
    $r->Setage(30);
    
    
    $r->Name="李四";//只要是执行该语句,会自动调用__set方法,
    $r->Sex="女";
    echo $r->Sex;
    var_dump($r);
    //面向对象三大特性
    //封装
    //目的:让类更加安全,不让外界直接访问类里面的成员变量
    //做法:1.把成员变量做成私有的 
         //2.做一个方法来实现变量的取值或赋值
    //使用类里边提供的魔术方法也可以实现对私有成员的操作
    //__set()特点:会自动执行,把赋值语句中的变量名作为第一个参数,把变量值作为第二个参数来调用__set()方法
    //__get()特点:会自动执行,会把取值语句中的变量名作为参数调用__get()
    //继承
    //多态
    
    
    
    
    ?>
  • 相关阅读:
    Centos7部署jenkins
    查看杀死django进程
    【填坑】python3 manage.py migrate:?: (mysql.W002) MySQL Strict Mode is not set for database connection 'default'
    Amazon S3 加密
    向 Elastic Beanstalk 环境中添加数据库
    Amazon RDS 监控概览
    AWS Lambda 环境变量
    使用 DynamoDB Auto Scaling 自动管理吞吐容量
    使用 Amazon Aurora Auto Scaling 扩展 Aurora 副本
    ECS 服务 Auto Scaling 和 Application Auto Scaling
  • 原文地址:https://www.cnblogs.com/nannan-0305/p/5442958.html
Copyright © 2011-2022 走看看