面向对象学习总结二

一、静态属性和静态方法

1.概述
	(1)static关键字修饰的属性,就是静态属性
	(2)static关键字修饰的方法,就是静态方法
	(3)静态属性或方法就是类的属性或方法,与类相关,与对象无关。
	(4)类的东西[类常量、静态属性、静态方法],通过"类名::"来调用
	(5)好处:节省内存。例如:创建了100个对象,而静态属性只有一份。
	(6)静态属性和类常量的区别:类常量在一次HTTP请求过程中值永远不变,但是静态属性可以改变。
	(7)静态属性和静态方法都可以加权限修饰符,而类常量没有权限。
	(8)举例
		class Student
	    {
	        //私有的保存人数的静态属性(所有对象共享)
	        private static $count = 60;
	    
	        //公共的静态方法
	        public static function showInfo()
	        {
	            $str = "当前文件名:".__FILE__;
	            $str .= "<br>当前函数名:".__FUNCTION__;
	            $str .= "<br>当前方法名:".__METHOD__;
	            // $str .= "<br>当前班级人数:".Student::$count;
	            $str .= "<br>当前班级人数:".self::$count;
	            echo $str;
	        }
	    }
	    //在类外访问公共的静态方法
	    //访问类的内容(类常量,静态属性,静态方法),不需要创建对象,直接访问
	    Student::showInfo();
	    $obj = new Student;
	    echo "<br><br>";
	    $obj -> showInfo();

效果图如下:
在这里插入图片描述

二、单例设计模式

(1)什么是单例设计模式?
		单例设计模式是指一个类只有一个对象实例。这样做的好处,可以防止频繁创建对象而造成资源浪费。
(2)单例设计模式的要求(三私一共)
		a.一私:私有的静态的保存对象的属性
		b.二私:私有的构造方法,阻止类外new对象
		c.三私:私有的克隆方法,阻止类外clone
		d.一公:公共的静态的创建对象的方法

核心代码
在这里插入图片描述

三、对象之间的赋值与克隆

(1)对象之间的赋值,实际就是引用赋值,两个对象之间赋值后,就是一个对象了。所以当一个对象的内容发生变化后,另一个对象的内容也会发生变化。
(2)普通变量之间的赋值,如果也想使用引用赋值,必须使用&。
(3)克隆关键字clone ,克隆后的对象,不会受原对象的影响。

在这里插入图片描述
结果:
在这里插入图片描述

四、命名空间

(1)什么是命名空间:命名空间一个最明确的目的就是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误。
(2)命名空间通过关键字 namespace 来声明, 如果一个文件中包含命名空间,它必须在其它所有代码之前声明命名空间。
(3)要想使用命名空间中的类,必须要引入这个类,如:use phpoop\Db

五、魔术方法之类的自动加载

(1)魔术方法的定义:PHP中把以两个下划线__开头的方法称为魔术方法
(2)__autoload函数 :主要的功能就是构造需要加载的类文件的路径,然后包括包含类文件。这一切都是当程序找不到类文件时自动执行的。
(3)spl_autoload_register() 提供了一种更加灵活的方式来实现类的自动加载

核心代码
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值