7.3.2 PHP画图理解对象在内存中的形式

7.3.2 PHP画图理解对象在内存中的形式

当定义好类后,我们使用new关键字来生成一个对象。
$对象名称 = new 类名称();
$对象名称 = new 类名称([参数列表]);
由于对象资料封装的特性,对象属性(类中定义的变量)是无法由主程序区块直接来访问的,必须通过对象来调用类中所定义的属性和行为函数,间接地达成存取控制类中资料的目的。

<?php
    //声明一个电话类Phone
    class Phone {               
        //类中成员同上(略)
    }
    
    // 声明一个人类Person
    class Person {                  
        //类中成员同上(略)
    }
    //通过Person类实例化三个对象$person1、$person2、$person3
    $person1 = new Person();        //创建第一个Person类对象,引用名为$person1
    $person2 = new Person();        //创建第二个Person类对象,引用名为$person2
    $person3 = new Person();        //创建第三个Person类对象,引用名为$person3
    //通过Phone类实例化三个对象$phone1、$phone2、$phone3
    $phone1 = new Phone();          //创建第一个Phone类对象,引用名为$phone1
    $phone2 = new Phone();          //创建第二个Phone类对象,引用名为$phone2
    $phone3 = new Phone();          //创建第三个Phone类对象,引用名为$phone3

对象中成员的访问

类中包含成员属性与成员方法两个部分,我们可以使用“new”关键字来创建一个对象,即:$引用名 = new 类名(构造参数);那么我们可以使用特殊运算符“->”来访问对象中的成员属性或成员方法。如:
    $引用名 = new 类名(构造参数);
    $引用名->成员属性=赋值;   //对象属性赋值   
    echo $引用名->成员属性;   //输出对象的属性    
    $引用名->成员方法(参数);//调用对象的方法

如果对象中的成员不是静态的,那么这是唯一的访问方式。

对象和类的关系:
对象是实际存在的,占有动态资源。
类是对象的蓝图,可能占有静态资源。
对象属性占有动态资源
类(静态)属性实际上是有类名字空间上的“全局变量”
性能考虑:
每个对象要单独占用数据空间
增加的调用层次可能消耗执行时间

boyfriend.class.php

<?php
/*
 *  属性
 *      性别:男
 *      年龄: 24
 *      身高: 175cm
 *      眼睛: 大
 *
 *
 *  行为
 *
 *      做饭
 *      做家务
 *  
 *   class 类名  {
 *      
 *
 *   }
 *
 *   注意:  在类的成员属性前面一定要有一个修饰词, 如果不知道使用什么修饰词, 就可以使用var (关键字), 如果一旦有其它的修饰词就不要有var
 *
 */


    class BoyFriend {
        //变量 (成员属性)
        var $name = "gaoluofeng";
        var $age = 24;
        var $sex = "男";
        var $height = "175cm";
        var $eye = "big";


        //函数 (成员方法)
        public function doFan($rou, $cai) {
            return "做饭的功能<br>";
        }

        function doJW() {
            return "做家务的功能<br>";
        }
    }

    $bf1 = new  BoyFriend();

    $bf1 -> name = "张三";


    $bf2 = new BoyFriend;

    $bf2 -> name = "李四";

    echo $bf1->sex."<br>";
    echo $bf2->height."<br>";



    echo $bf1 -> dofan("牛肉", "土豆");
    echo $bf2 -> dojw();

test.php

<?php
    include "boyfriend.class.php";
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,200评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,823评论 18 399
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,268评论 6 13
  • 烟囱 cong Twinkle twinkle little starHow I wonder what you ...
    fupeng阅读 293评论 0 0
  • 文:ShakespeareSky(莎士比亚斯基) 10 林萌打来电话的时候,已经快要过中秋节了,林萌说她实在是受不...
    ShakespeareSky阅读 116评论 0 0