PHP面向对象的详细解决方案

PHP面向对象的详细解决方案
对象的三个主要特征
物体的行为:动作可以应用到物体上,光线被打开,而光是行为。
对象的形式:当方法被应用时,对象是对象如何响应,颜色,大小和形状。
对象表示:对象的表示相当于身份证,它是相同行为和状态之间的特殊区别。

面向对象的模型

面向对象概念:
OOP(面向对象编程)它可以更简洁,容易维护,更重。

什么是班级:
是一组具有相同属性和对象的服务,如人、书、船、汽车属于类,他对类的抽象对象作了统一的描述,在编程语言中是一个单独的程序,它应该有一个类,包括两部分的属性和服务的描述。
对象是什么:
对象是描述系统中的客观事件的实体。他是系统的一个基本单位。*数据和代码被捆绑在一个实体*中,一个对象由一组属性和一组操作在这组属性上组成。
从抽象的角度来看,一个对象是在问题域或域的抽象实现的东西。他反映的信息,这件事一直在系统和它所起的作用:它是一组属性和封装,有权对这些属性进行操作。客观世界是由对象和对象之间的连接。
类与对象的关系:
阶级与客体的关系,犹如铸与铸的关系。强度的结果是物体,物体的抽象是类。类描述具有相同特性(属性)和相同行为的对象组。

类、属性和方法

类语法格式是用PHP定义的:
复制代码代码如下所示:
类的类名{ } {可选属性
公共属性$ { = };…
函数的函数名(参数)在类{ / /方法的成员函数
代码}…
方法(成员函数)
}

生成的对象(类的实例):$对象名称=新的类名();

使用对象的属性

在类中,一个特殊的指针$,当类在类中的操作被设置或访问时可以访问这个指针,并使用$这个名称引用。
生成的对象
定义一个类后,由一个新的。由于对象数据的封装性,对象不能被主程序块直接访问,对象中定义的对象、函数和属性必须由对象调用。
对象与类的关系
对象与类的关系:
对象是实际存在,占用动态资源。
类是对象的蓝图,它可能占用静态资源。
对象属性占用动态资源
类(静态)属性实际上是类命名空间上的一个全局变量。
性能方面的考虑:
每个对象需要分别占据数据空间。
呼叫级别的增加可能会消耗执行时间。
方法的参数形式和传递方式
该方法的参数可以是基本数据类型、数组和类对象。
基本数据类型:值参数传递
数组:值参数传递
类对象:引用转换
构造函数
构造函数是类中的初始化函数。
生成一个构造函数的方法,就像任何其他的功能,但其名称必须__construct()。
语法格式:
功能__construct(参数){
对.
}
实例uff1a
复制代码代码如下所示:
类人{
公开名称;
公益性;
公共年龄;
功能__construct($name美元美元,性别,年龄){
我是构造函数。
这个名字;
这个性别;
美元=年龄=年龄;
}

输出结果:初始化

析构函数

当对象超出其作用域时,系统会自动执行析构函数(例如,调用对象的函数),在退出之前,它应该用于释放析构函数中的内存。
析构函数析构函数没有参数__destruct
实例uff1a
复制代码代码如下所示:
类人{
功能_(_destruct)
{再见!;;}
}
新的人();

访问类型
public在public(public修饰符)类和类的外部是可访问的。
只能在类内访问私有私有(私有修饰符)。
受保护的受保护成员保护子类可以访问不能访问的外部类。

面向对象编程的三个重要特征

封装、继承、多态
封装:封装是将一个对象的属性和行为组合成一个独立的单元。
一个类封装需要在第一步两步是私有化的一类和二步骤使用,让阅读的赋值操作
其优点是:隐藏了类的实现细节,可以方便地添加逻辑控件,限制属性的不合理操作,便于修改和提高代码的可维护性。

__get和__set
一般来说,阶级的私人话语更符合现实的逻辑。
预定义两个函数来获取和应用值运算。
通过__get价值通常是该域的值
该__set设置的值通常是该域的值
当__call调用的方法不在一个对象的存在,它会生成一个错误的电话()来处理这种情况的方法。

静态特性和方法

静态关键字声明静态方法
类中的静态静态变量生成一个静态变量,该变量可以是静态段静态初始化中该成员的所有强度。
用法:自我:$静态属性,自我::静态方法
静态函数P(){
回声自我:$国家;
回声自:
返回$这个名称;只有静态属性可以在静态方法中运行。
::p();
}
外部调用:类:$静态属性,类:静态方法

常量常数是唯一不能改变的习惯规范。
const常量='恒值生成一个常数;
回声::常量;内部访问
回声类名::常数; / /外部访问

继承

B类的对象具有类的所有属性和行为,也就是B类A的继承。
如果一个类继承多个类的属性和服务,这就是所谓的多重继承,我们通常成为类继承的子类继承父类的,只有丹继成在PHP,但父母可不止一个班,但是一个类只能有一个父。但是允许继承定义的关联继承可以减少类。
推广宣布继承关系
语法格式:B类扩展了这个示例,表明B继承了一个
类的外部访问对于子类是有效的。
子类和父类的属性和方法
子类继承父类的所有内容,但父类中的私有部分不能直接访问。
子类中新增的属性和方法是对父类的扩展。
子类中父类的同名属性被覆盖为父类属性,并且相同的名称的方法也被覆盖为父类方法。

重写方法

在子类中,使用父级访问父类中的覆盖属性和方法。

家长::__construce();
父:$;
家长:;

覆盖父类的原始属性。
克隆克隆对象语法$克隆= $;

Object comparison
比较运算符==。
=比较两个对象。
=是比较对象的句柄,即引用地址。

instanceof运算符用于检测是否有物体的强度属于某一类,属于返回true,不属于错误返回的类型
__clone()如果你想克隆后改变原对象的内容,你需要重写__clone原有的属性和方法()。
功能__clone(){
这是克隆。
}

最后指出类是最终版本,也就是说,它不能在被子类中调用。

多态性

多态性意味着在父类定义的属性或行为被子的继承之后,它可以有不同类型的数据或行为不同,这允许相同的属性或行为在父类及其子类中具有不同的语义。
也就是说,相同的方法不同于子类和父类的结果。
复制代码代码如下所示:
类{
函数信息(){
回声信息;
}
}
B类扩展{
函数信息(){
回声B;
}
}
类C扩展{
函数信息(){
回声C;
}
}
功能存储($ obj){
功能存储($ obj){
如果($ obj是一个)
$ obj ->信息();
$ obj ->信息();
}
}
$ =新的A();$ =新的B();$ =新C();
存储(合一); / /信息输出
存储($); / / B信息输出
存储($ C); / / C信息输出
抽象方法和抽象类

抽象方法被用作触摸板的一个子类。
复制代码代码如下所示:
抽象类{ {
公开名称;
摘要功能getInfo();
}

抽象的阶级不能用力量来形容。在抽象类中,必须有一个抽象方法,但是动态函数可以在抽象类中定义。
接口
当一个类继承了一个接口时,它将覆盖接口的所有方法。接口只能声明常量。接口的方式必须定义为共享,否则不能继承。接口可以从多个接口继承。
Grammar:
复制代码代码如下所示:
PCI接口{
常量类型;
公共名称$;错误
函数开始();
函数停止();
}

接口中的方法可以声明为静态的。
复制代码代码如下所示:
接口函数A();}
接口B {函数B();}
接口C扩展了{函数C();}
类实现B、C {
函数(a){
函数(b){ }
函数(c){ }
}


班级的陈述:
复制代码代码如下所示:
< PHP
访问修饰符类类名称{许可证符号:公共的,受保护的,主私有的,或省略3个。
构建类的主体;类密钥
类名称必须遵循类,并在类的成员之间挂起{ }。
>
可以在类关键字之前添加权限修饰符,还可以添加静态、抽象和其他关键字。一个类,即一对括号,所有内容都应该在一段代码中,并且类中的内容不允许是分区。
< PHP
类conndb {
/…
>
<

};
>

成员属性:
在类中直接声明的变量称为成员属性变量。它们的类型可以是PHP的标量类型和复合类型,而资源类型和空类型无效。
此外,成员属性的声明必须通过关键字进行修改:特定含义的关键字:公共的、受保护的、私有的;不需要特定的含义:当VaR声明成员属性时,不需要指定初始值。

成员常数:

常数常数修正,例如,常数pi=3.1415926;
常量输出不需要实例化,由类名+常数名直接调用,类名是:常量名
访问ps的一种方法
1)在每个成员方法中都存在$ ,这是使用方法的特殊对象。成员方法属于该对象,$此应用程序表示该对象,其作用是完成内部成员之间的访问。
2):成为范围运算符。使用这个操作符可以在类中调用常量、变量和方法而不创建对象。它的语法格式如下所示:

键:变量名常量名/方法名

关键词:父级,可以在父类中调用成员变量、成员方法和常量。
您可以调用当前类中的静态成员和常量。
类名,可以在类中调用常量、变量和方法。
U3000 U3000
成员方法:

函数声明在类中成为成员,可以声明一个类中的多个函数,对象可以有多个成员。成员方法方法声明和函数声明,唯一独特的是成员的关键字方法可以被修改,从而控制访问。
类的实例化

创建对象:

变量名=新的类名({参数})。
访问类成员:
变量名>成员属性=值;
结构方法与分析方法
第一种对象吟诵法完成后物体生成的构造方法。它被称为自动声明每种语句,是一种特殊的成员常用的方法来完成某些初始化操作。如果没有类构造函数,系统将自动生成不生成的默认参数。
格式:
复制代码代码如下所示:
功能_construct(形式参数表){
方法
};

施工方法与施工方法相反。在对象被销毁之前,这是最后一次调用方法。它将完成特定的操作,例如关闭文件并释放内存。
格式:
复制代码代码如下所示:
功能_destruct(){
方法
};

面向对象的特性:封装、抽象、多态。
封装:
类中的属性和方法的成员被合并为同一个独立的单元,以及可能的隐藏对象细节。其目的是确保其他部分不能访问内部数据(成员属性和方法),以避免外部错误对内部数据的影响。
类封装是通过关键字公开、私有、受保护、静态和最终实现的。每个关键字的功能查看PHP相关文档。
继承:
类继承并拥有另一个现有的类成员属性和成员方法。继承的类是父类,继承的类成为子类。继承可以提高代码的重用性和可维护性。类的继承基于扩展关键字。
格式:
复制代码代码如下所示:
类子类名称,扩展父类名称{
子类方法。
}

通过父级:在父类的成员方法的子类方法中也可以调用关键字,如下所示:
父:父类的成员方法(参数);

父类的覆盖方法:

所谓的覆盖父类的方法是通过使用子类方法替换父类继承的方法,也叫做方法重写。重写的关键是在子类中与父类创建相同的方法。g包括方法名、参数和返回类型。

多态性:
多态性是指程序处理多种类型对象的能力。有两种实现方法:PHP多态性,即通过继承和多态通过接口实现多态性。
多态性是通过继承实现的,也就是说,多态性的效果是通过重写继承的成员方法来实现的。
复制代码代码如下所示:

< PHP
抽象类parentclass {
摘要功能,它对于();
}
类subclassA延伸parentclass {
功能,它对于(){
我是A班的消息;
}
}
类subclassb延伸parentclass {
功能,它对于(){
我是B类的消息;
}
}
功能printmsg(元对象){
如果($对象实例parentclass){
$对象->它对于();
其他{ }
错误!;
}
}
美元:=新subclassA();
printmsg(合目的);
objectb美元=新subclassb();
printmsg($ objectb);
>

多态性是通过接口实现的,通过定义一个接口,用一个空的方法,然后类继承接口。
复制代码代码如下所示:

< PHP
接口interfaceinfo {
它对于()函数;
}
班班实现了interfaceinfo {
功能,它对于(){
消息窗体类;
}
}
B类实现interfaceinfo {
功能,它对于(){
消息窗体B;
}
}
功能printmsg(元对象){
如果($对象实例interfaceinfo){
$对象->(它对于);
其他{ }
错误!;
}
}
ClassA:美元=新();
printmsg(合目的);
objectb美元=新的B();
printmsg($ objectb);
>

抽象类和接口。
抽象类和接口是不能实例化的特殊类。它们都可以与面向对象多态性结合使用。
抽象类:
抽象类是不能实例化的类,只能用作其他类的父类。抽象类用抽象关键字声明,如下所示:
复制代码代码如下所示:
抽象类抽象类名称{
函数抽象方法(参数)的成员;
}

抽象类类似于一般类,包括成员变量和成员方法。它们之间的区别在于抽象类应该包含至少一种抽象方法。抽象方法没有方法主体,其功能只能在子类中实现。抽象方法也通过关键字摘要进行修改。

接口:
继承特性简化了对象和类的创建,增强了代码的可重用性。但是,PHP只支持单继承。如果我们想要实现多重继承,我们需要使用接口。
接口声明:实现通过接口关键字接口必须声明为抽象方法,接口不能声明变量,只能使用const关键字来声明成员属性的常数,和接口成员必须能够访问接口。ainterface公众开放格式如下:
复制代码代码如下所示:
接口接口名称{
常量成员。
/抽象方法;
}

因为接口不能实例化,所以只能以子类继承接口的形式实现。实现是:
复制代码代码如下所示:
类实现接口1 {接口、2接口、3、…{…
子类方法。
}

常用关键词:
1)决赛的意义:决赛是决赛和最后。这意味着由最终关键字修饰的类和方法是最终版本。它们不能继承或子类。它们不能重写或重写。
2)静态:成员属性和静态关键字修改的成员方法称为静态属性和静态方法。静态成员属性和方法可以直接使用而无需实例化。
静态属性:它属于类本身,但不属于类的任何实例。它相当于存储在类中的全局变量,它可以在任何位置按类访问。
类名:$静态属性名;
如果您希望在类中的成员方法中访问静态属性,请在静态属性名称之前添加运算符::。
静态方法:由于它不受任何对象的限制,所以可以在不实例化类的情况下直接引用类中的静态方法。参考格式如下:
类名::静态方法名(参数);
如果您希望在类中的方法成员中调用静态方法,那么请使用运算符的静态方法的名称。静态方法只能称为静态变量,不能称为普通变量,普通方法称为静态变量。
静态成员不需要外人,另一个是销毁对象,保持静态数据呗修改,为下一个调用。
3)克隆的克隆。对象可以通过关键字实现。克隆对象和原始对象之间没有关系,也就是说,克隆对象将重新应用存储空间来存储原始对象内容。
$克隆对象=克隆$原始克隆对象名称;
克隆成功后,它们的n个成员方法、属性和值是完全相等的。_clone()用于如果副本重新初始化。
神奇方法_clone()可以重新初始化复制对象克隆后。它不需要任何参数,包括$(复制对象)和$(原始对象)引用。
对象比较:
两个表示对象的内容,=比较两个对象引用地址b相等。
对象类型的检测:instanceof运算符可以检测到当前对象属于对象。

面向对象-常用魔术方法:
常见的神奇的方法我们已经了解了以上:_construct(),_destruct(),和_clone,然后我们再介绍一些常见的魔术。
_get(),()_set;
上述两种方法用于对私有成员的值进行精细复制或获取。
_set()在程序运行的私有成员属性的设置值。它不需要任何返回值.. _set()的方法包括两个参数不能省略:变量名和变量的值。这种方法不需要主动,但可以添加方法钱是关键。
_get():在程序运行时,它获取私有成员属性的对象之外的价值。它有一个参数:私有成员属性名。它返回一个值,允许对象在外部使用。这种方法也不允许主动调用。

_isset()()(),_unset:
Isset()的功能是用来检测变量是否存在。面向对象可以通过isset()函数来检测的成员属性公开的,但私有成员属性,此功能不工作。因此,该_isset()函数来扮演这一角色创建以下格式:
布尔_isset(String name);
_unset()也删除了的变量和对象的私有成员属性。格式如下:
无效_unset(String name); / /
_call()():
_call()方法的作用是,当一个程序试图调用成员方法不存在或是看不见的,PHP首先调用_call()来存储和其参数的方法名称的方法(方法名和方法参数)。方法参数以数组的形式存在。
的_tostring()方法:
该函数是在使用回声或打印输出对象时将对象转换成字符串。
如果没有_tostring()方法,当对象是直接输出会出现致命错误。
当您导出对象时,您应该注意在返回或打印语句之后直接输出的对象。不要在中间添加额外的字符,否则_tosting()将不会被执行。
的_autoload()方法:
一个独立的,为了维护一个PHP页面的完整性,并且文件名和类名是一致的,这是每个开发人员需要养成的一个好习惯。所以下次使用时很容易找到它。但有一种情况:如果你想在一个页面介绍了很多类,你需要使用include_once(或require_once)功能(函数)被引入到_autoload(。PHP5)方法可以自动实例化需要使用类。当一个类没有实例化,(_autoload)自动向指定的路径跟踪相同的文件名自动寻找和发现。继续,或错误。
复制代码代码如下所示:

< PHP
功能_autoload($ class_name){
class_path美元= class_name美元。。类。php;
如果(file_exists($ class_path)){
include_once($ class_path);
其他{ }
回声类不存在或类路径错误;
}
}
$ =新(类);将自动加载。
回声类;输出类。如_tostring(自定义)的方法;它将输出_tostring()中定义的内容。
>

tag:解决方案面向对象的详细电脑软件php

相关内容