Blogger Information
Blog 13
fans 0
comment 0
visits 11344
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
类和对象
莫名的博客
Original
1045 people have browsed it

类和对象

类是一类属性和操作方法的集合,而对象是类的实例,类是对象的抽象。

类的三大特性:

封装(让类的属性私有化,利用内部方法对外提供接口)

继承(使得一个类能够使用另一个类的所有方法和属性,这无疑提高代码的重用性)

多态(利用接口的特点来实现抽象,顶层紧紧是个抽象概念,具体实现由类完成,使得程序的扩展,重用更加方便)

静态和常量:

  • 使用static声明的为静态的方法或者属性

  • 静态的方法或者属性是由类直接调用的,例:ClassName::method()

  • 静态的方法或者变量会一直存储在内存中,直到脚本的运行结束

  • 类中常量与静态属性都是由类直接调用,不同的是常量一旦赋初值,就不能改变

构造方法和析构方法:

  • php中使用__construct()来定义一个构造方法,当初始化一个对象时,自动调用

  • 构造方法的一般是用来初始化类中的属性

  • php中使用__destroy()来定义析构方法,当对象的所有引用都被删除或者显示删除对象时,自动调用

  • 析构方法,是用来释放资源连接

类的自动加载:

使用场景:当我们使用自己或者别人编写的类时,要对其进行include,而我们不能一个个去包含他们,这样,既麻烦也可能忽略一些需要的类

作用:调用某个类时,自动去包含该文件

例:spl_autoload_register(function($classname)){ require_once $classname.'php'}


抽象类和接口

接口与抽象类的相同点:

  • 1.抽象类与接口中都有抽象方法

  • 2.接口和抽象类都不能直接被实例化

特殊点:

  • 1.接口中的所有方法必须是抽象方法

  • 2.接口中的成员属性必须是常量

  • 3.接口的实现使用implements,抽象类的实现使用extends

  • 4.接口中的方法都是public类型,而抽象类中的方法可以使用private、protected或public来修饰。

  • 5.接口中不可以声明变量,但可以声明类常量.抽象类中可以声明各种变量

  • 6.接口没有构造函数,抽象类可以有构造函数。

  • 7.一个类可以同时实现多个接口,但是只能实现一个抽象类。

接口的应用细节:

  • 1.接口可以继承接口(只有扩展,没有覆盖)

  • 2.类和抽象类都能实现接口,但是不能继承

  • 3.可以实现多个接口,用逗号分隔


trait

与其他语言不同的是,php使用了trait,一种代码复用的机制

例:

trait demo { function getName(){}}        //定义一个trait结构

class people{ use demo}                        //相当于把trait结构里的代码复制进来

相同方法的覆盖优先级: 本类 > triat > extends

多个trait,方法冲突的解决方法,给方法取别名 use demo { getName as protected myName;}

注意,triat里面还可以定义,属性,静态变量,静态方法,抽象方法,


Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post