php的构造函数解析
来源:互联网 发布:linux 网络性能测试 编辑:程序博客网 时间:2024/06/05 06:20
1、什么是构造方法:
构造方法是类中的一个特殊方法。当使用 new 操作符创建一个类的实例时,构造方法将会自动调用,其名称
必须是 __construct() 。在一个类中只能声明一个构造方法,而是只有在每次创建对象的时候都会去调用一次构造
方法,不能主动的调用这个方法,所以通常用它执行一些有用的初始化任务。该方法无返回值。
2、构造方法的常用格式:
构造函数的作用是什么?为了让你更好的理解,我举工厂的例子开始讲起:
我们知道,在一个工厂里面,要生产同要求的产品,那么就需要CAD模具。如果引申到我们的PHP中,我们可以理解为类就是CAD模具,决定了产品的形状;而对象就是产品;要求(长度、宽度、高度、半径等等指标)
就是类中的类的属性。
当我们要生产产品,首先我们要根据需求方明确该产品有哪些要求,比如是做一批长方形的产品(产品a,产品b
,产品c),我们的CAD模具(类),要求是长、宽、高指标(类属性)。进而需要的是产品a,b,c,长、宽、高的各项
指标的具体参数(类属性参数)。假设你是工厂的技术员,你怎么操作CAD模具呢?
第一种方法:
class长方形产品a模具:
{
private $长=1.1m;
private $宽=1.2m;
private $高=1.5m;
}
$产品a=new class 长方形产品a();
class 长方形产品b模具:
{
private $长=1.4m;
private $宽=1.7m;
private $高=1.8m;
}
$产品b=new class 长方形产品b();
class 长方形产品c模具:
{
private $长=1.0m;
private $宽=1.1m;
private $高=0.9m;
}
$产品b=new class 长方形产品c();
第二种方法:用构造方法就是
class 长方形产品模具类:
{
private $长;
private $宽;
private $高;
public function __construct(参数1, 参数2, 参数3){
$this->长 =参数1;
$this->宽 =参数2;
$this->高= 参数3;
}
实例化各产品对象的时候,我们只需要
$产品a=new class长方形产品cad模具类(1.1m,1.2m,1.5m);
$产品b=new class长方形产品cad模具类(1.4m,1.7m1.8m);
$产品c=new class长方形产品cad模具类(1.1m,1.0m1.9m);
....
如果是生产不规则形状的产品,那么技术员要设定的cad模具(类)指标(类属性)就会很多,如果该批
产品大小种类还很多的话(对象很多),需要设置很多的指标参数(类属性参数),显而易见后者第二种方法
的工作效率会高很多。
也就是说构造方法__construct()实例化类对象的时候有很大的优势,一次建类,多次重复使用。在这里,
我们也就明白了构造方法的好处是其可以接受参数,实例化对象时,为不同的对象设置不同的属性初始化值。
3、注意:如果子类不写构造函数的话,会自动继承父类的构造函数
如果子类写构造函数的话,则不会继承父类的构造函数
父类的构造函数如果是私有的,可以被继承,但是子类必须有自己的构造函数,并且明确写出来
- php的构造函数解析
- 【构造函数】解析构造函数的作用
- php类与构造函数解析
- java 构造函数的解析
- java 构造函数的解析
- 构造函数的简单解析
- PHP构造函数的继承
- php 构造函数的继承
- php的构造函数理解
- PHP 构造函数的重载
- PHP 面向对象,构造函数与解析函数
- 重载与构造函数的解析
- C++中string构造函数的解析
- PHP构造函数的继承问题
- php构造函数的执行顺序
- php构造函数的小例子
- PHP构造函数的用法分析
- php构造函数的继承方法
- mybatis 拼接动态表名、字段名
- 从尾到头打印链表每个节点的值。
- jquery扩展插件
- Java OutOfMemory异常清单 —— 在自己的机器上制造内存溢出
- Linux安装Nginx报错make: *** No targets specified and no makefile found. Stop.解决方法
- php的构造函数解析
- 设计模式-单例模式
- 应该在什么情况下使用JavaScript框架
- Spring+SpringMVC配置加载顺序
- vector的常见用法
- Java HashMap工作原理及实现
- 透明视频播放
- eclipse中配置Pydev插件出现的问题
- 百度之星资格赛1003 度度熊与邪恶大魔王