php中的面向对象介绍

来源:互联网 发布:切换字体的软件 编辑:程序博客网 时间:2024/04/29 11:54

面向对象介绍:


        起初,“面向对象”是专指在程序设计中采用封装、继承、抽象等设计方法。可是,

这个定义显然不能再适合现在情况。面向对象的思想已经涉及到软件开发的各个方

面。如,面向对象的分析(OOA,ObjectOriented Analysis),面向对象的设计

(OOD,Object Oriented Design)、以及我们经常说的面向对象的编程实现

(OOP,Object Oriented Program)。

 

public 表示全局,类内部外部子类都可以访问;

protected表示受保护的,只有本类或子类或父类中可以访问;

private表示私有的,只有本类内部可以使用;

初始化对象 __construct()

 

析构函数 __destruct()


$this   对象被创建的之后才有的,代表当前的对象,调用该对象中的成员 

 

Self       访问当前类中的成员,因为没有实例化访问内部属性或者方法是没有意义的,所以selef一般用来访问类中的:静态成员,常量,或者其它定义内容

 

Final   这个关键字是用来定义类和方法的一个重要关键字,

              如果类被加上final        final class   Person{    }  这时该类将不能被继承

              如果函数被加上final      final function  say(){  }  这时该函数将不能被重载

 

Static   用来定义类的静态属性或方法,可以在类未被实例化时使用,静态的属性会单独的占用内存而不会因为创建多个对象导致同样地方法或者属性重复占用。

注意:静态方法的内部禁止出现非静态的内容。

              类内部访问静态成员;

                     类名称::静态成员

                     Self:: 静态成员

              类外部访问静态成员;

                     类名称::静态成员

Const   用来定义类中的常量,类似php外部定义常量的关键字define();const只能修饰类中的成员属性

              建议CONST大写;    常量不使用$符号

 



1、继承:extends;

       Php中的继承是单一的继承;

 

2、抽象:abstract

抽象类能被继承,不能被实例化;

 

1)、类中至少有一个抽象方法

2)、抽象方法不允许有{}

3)、抽象方法钱面必须要加abstract

 

3、接口:关键字:interface;

       特征:

              1)、类中全部为抽象方法;

              2)、抽象方法前不需要加abstract

              3)、接口抽象方法属性为:public

              4)、成员属性必须为常量

       与抽象类的区别:

              1)、抽象类中至少有一个抽象的方法

              2)、抽象的方法前必须加上abstract关键字

       抽象类与接口的共同点:

              1)、本身都不能被实例化,必须被继承或者被引用;

              2)、继承或者引用后,需要把所有的抽象方法重载方可使用

 

注意:

1)、在创建接口时,成员属性只能是常量,不能是变量

2)、常量只能初始化,不能赋值

3)、静态变量只能在类外初始化,在类内声明只是为了限定作用域

const PI=3.14;

static $static;

 

接口实例:

       Interface demo{

              Const  NAME=”名称”;

              Function fun1();

             Functionfun2();

}

 

实现接口 关键字: implements

只可单继承,但可多接口

1)、class student implements Person(); 

前面不加abstract需要将该接口中的抽象属性全部实现  说明该类就不是抽象的类了

2)、abstract class student implements Person();

这样写说明该类还是一个抽象的类

3)、class  teacher  extends  student  implements Person,Person1...{}

单继承,多接口

4)、Inter1,inter2都为已有的接口;

interface  inter1 extends  inter2{……………}

接口与接口的继承

      

 

4、多态:关键字instanceof

       用来判断给定的对象是否来在指定的类

Class A{……..}

Class B{……...}

 

$CC = new A();

 

If($CC  instanceof A){

       Echo“我的基类是A”;

}

 

If($CC instanceof  B){

       Echo“我的基类是B”;

}


原创粉丝点击