php 面向对象知识点
面向对象知识:
1 你对面向对象的认识
面向对象(OO)出现在20世纪70年代,面向对象是认识事物的一种方式,用的是类比模式。
2 什么是类?什么是对象?类和对象之间的关系?
(类是具有相同属性和服务的一组对象的集合。它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。
对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位)
类是抽象(外观=>属性、做的事=>行为)的,对象(实体)是具体的,对象是对类的实例化
3 面向对象的3大特征
封装、继承、多态。
4 怎么创建一个类的对象?
class 类的名称
5 什么是构造方法(函数)?怎么定义?有什么样的特点?
构造函数又称为构造方法是对象被创建时自动调用的方法,用来完成类初始化的工作。
__construct
构造方法不能重复定义,每个类中有且只能有一个,如果不写相当于有一个默认的不带参数且没有任何执行语句的空函数。
6 什么是析构方法(函数)?怎么定义?有什么特点?
析构函数(__destruct):当某个对象成为垃圾或者当对象被显示销毁时执行。当类的对象被销毁时自动调用,作用与构造函数相反,它是用来销毁对象的,
同时它也会用于相关联的数据的同步销毁,它自动被调用,析构函数不能传参数。
7 什么是封装?有什么作用?列举一些封装的实例
信息隐蔽,封装,所有的函数和方法,类中的属性和行为也是封装。
调用的时候方便,避免写太多重复的代码。
三个访问修饰符public、protected、private也是封装
8 访问修饰符有哪3个?分别有什么作用、特点
三个访问修饰符public、protected、private
public 公共的 谁都可以用,也可以修改;protected 受保护的 只有自己和后代可以使用和修改; private 私有的 只有自己可以使用和修改;
9 什么是继承?关键字是什么?有什么作用?
继承: 扩展父类的内容, 关键字: extends
10 什么是多态?
态是指在面向对象中能够根据使用类的上下文来重新定义或改变类的性质和行为。
11 关键字this,super各自什么用途?有什么区别?
this:在类中调用当前对象的属性和方法,
super:类可以调用由父类声明的构造方法.
一个是当前对象,一个是父类
12 static的作用?用static修饰的如何访问
static 静态的,它可以修饰属性变量,也可以修饰函数方法,
静态资源的标准访问方式==>类名::静态资源名称;
13 parent的用法
parent::方法
14 什么叫重载?
在子类中出现和父类同名的方法,这个称为重写,重写是行为的重新定义
15 final关键字的作用和用法
final 关键字,意思是最终的,最后的,它可以修饰函数方法,被修饰的函数方法不能被重写,类当中的属性不能被final修饰,final可以修饰类class,
但被修饰的类不可以被继承。
16 什么叫抽象?抽象方法和抽象类
抽象就是无法确切的说明,但又有一定的概念或者名称,在PHP中声明一个抽象类或者方法我们需要使用adstract关键字。
2、抽象方法和抽象类的定义
一个类中至少有一个方法是抽象的,我们称之为抽象类。所以如果定义抽象类首先定义抽象方法。
abstract class class1{
abstract function fun1();
……
}
1、类中至少有一个抽象方法
2、抽象方法不允许有{ }
3、抽象方法前面必须要加abstract
17 什么叫接口?关键字是什么?有什么特点?
接口(interface):接口是抽象方法和静态常量定义的集合。接口是一种特殊的抽象类。
implements;
在接口中定义的只能是公共的抽象方法(没有函数体部分),也可以有静态常量,接口采用的插件式配置,可以随意的匹配给任意一个类,
类可以实现(implements)接口,类实现的接口可以有无数个,当一个类实现接口后,该接口的所有的方法必须在该类中实现。
18 魔术方法是什么?大概有哪些?
两个下划线(__)开头的方法都保留为魔术方法
__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep, __wakeup, __toString, __set_state,
__clone, __autoload
19 如何访问和设置类中的私有属性?
private function 名称(){}
20 列举常见的魔术方法及其用途?至少4个
__get( $property ) 当调用一个未定义的属性时访问此方法
__set( $property, $value ) 给一个未定义的属性赋值时调用
__isset( $property ) 当在一个未定义的属性上调用isset()函数时调用此方法
__unset( $property ) 当在一个未定义的属性上调用unset()函数时调用此方法
21 命名空间的作用及其用法
命名空间(namespace):命名空间是一种封装事物的方法;在它之后是空间的名称;
namespace 空间名称
22 PDO是什么?
就是操作数据库的方法,
pdo就是把操作数据库的函数封装成一个pdo类,其间做了安全验证而已。
23 什么叫模板引擎?它有什么用途?
smarty:是一个使用php写出来的php模板引擎,目的是使用php程序同美工分离。