一、public、private、protected访问修饰符

  public:任何都可以访问(本类、子类、外部都可以访问)

  protected:本类、子类都可以访问(本类、子类均可访问)

  private:本类可以访问,其他均不可访问

二、构造函数、析构函数

  1. __construce()

  2. __destruct():注销一个对象

三、接口interface

  接口:php类是单继承的,不支持多继承,当一个类需要多个类的功能时,php类就无能为力,所以引入接口;什么是接口:如果一个抽象类里边的所有方法都是抽象方法,并且所有方法声明的关键字都是public,并且没有声明变量,这种类就是抽象类

  关键字:interface来定义接口,使用implemens来实现接口的方法,必须全部实现

三、instanceof检查"是一"关系,如下代码:

<?php
interface ExampleInterface
{
public function interfaceMethod(); public function play();
} class ExampleClass implements ExampleInterface
{
public function interfaceMethod()
{
return 'Hello World!';
} public function play()
{
return 'This is a num';
}
} $exampleInstance = new ExampleClass(); if($exampleInstance instanceof ExampleInterface){
echo 'Yes, it is';
}else{
echo 'No, it is not';
}

  以上代码输出的结果是:Yes, it is,为什么呢?ExampleClass它使用了关键字implements实现了ExampleInterface,所有他们是"是一"关系

四、final关键字

  1.允许你用来标记方法,但是不能被子类重载(就是说再子类中不能重新书写标记final的方法)

class TestClass
{
final function play()
{
return 'This is a num';
}
} class TestTwo extends TestClass
{
public function play()
{
return 'This is a 222222';
}
} $test = new TestTwo();
echo $test->play();

  上边代码提示:Fatal error: Cannot override final method TestClass::play()

  2.final用来标记一个类时,该类就不能被继承

五、clone:克隆对象,在使用对象的时候开业克隆一个

六、const 关键字声明类的常量(调用时不需要实例化对象,直接调用):

<?php
class TestClass
{
const NAME = 'zgw2014';
const AGE = 'zgw2014';
} echo TestClass::AGE;

七:静态属性关键字:static

  1.静态方法:

class TestClass
{
static function helloworld()
{
return '哈哈哈哈哈哈';
}
} echo TestClass::helloworld();

  2. 静态成员,类的定义包含现静态成员属性,开业通过类自身访问,不需要实例化对象,;通常用的最多的就是单利模式(单件模式) 

class TestClass
{
static private $instance = NULL; static public function getInstance()
{
if(self::$instance == NULL)
{
self::$instance = new DB();
} return self::$instance;
}
} class DB
{
public function play()
{
return '单利';
}
} $obj = TestClass::getInstance();
echo $obj->play();

八:抽象类abstract

  1.抽象类:把类声明成为一个抽象类,可以防止被实例化,但是你可以继承一个抽象类

abstract class TestClass
{
public function getInstance()
{
return 'get getInstance';
}
} $obj = new TestClass();
echo $obj->getInstance();

  上边的代码运行会提示:Fatal error: Uncaught Error: Cannot instantiate abstract class TestClass

  2.抽象方法:定义一个抽象方法以便在子类中再取重新定义实现,包含有抽象方法的类本身必须是抽象类

九 、自动加载:__autoload

function __autoload($className)
{
$classPath = './'.$className.'.php';
if(file_exists($classPath))
{
require_once $classPath;
}else{
echo 'class file'.$classPath.'not found!';;
}
} $obj1 = new ClassA();
$obj2 = new ClassB();

  上边代码的前提是在你设置的class路径里边必须有你实例化的类名的同名文件才行,也就是实例对象的文件名和类名一致才行

十、异常捕获机制 try{}catch(){}

function myErrorHandler($errno, $errstr, $errfile, $errline)
{
throw new Exception($errno.'###'.$errstr.'###'.$errfile.'###'.$errline, 1);
}
set_error_handler('myErrorHandler');
try{
$db = new mysqli('localhost','root','1111');
var_dump($db);
}catch(Exception $e){
echo $e->getMessage();
}

  以上代码 设置用户自定义的错误处理函数

小技巧:

  1.开启php的短标签:short_open_tag = On (开启后可以使用<? 代替<?php)

  2.php的三种注释:

    c语言注释:/***/

    c++注释://

    shell注释:#

  3.

php基础:面向对象的更多相关文章

  1. C#基础-----面向对象

    C#基础-----面向对象(一) 分类: C#基础2015-06-08 14:10 2人阅读 评论(0) 收藏 举报 1,面向对象 什么是面向对象?一个分析问题的方式(增强了程序的可扩展性) 几个名词 ...

  2. python基础——面向对象编程

    python基础——面向对象编程 面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的 ...

  3. java基础面向对象之类与对象

    java基础面向对象之类与对象 2017-01-14 1.面向对象的基本概念 以一种组建化的形式进行代码设计 1)在面向对象程序设计中包含有如下几种特性 •封装性:保护内部结构的安全性 •继承性:在已 ...

  4. python基础——面向对象进阶下

    python基础--面向对象进阶下 1 __setitem__,__getitem,__delitem__ 把对象操作属性模拟成字典的格式 想对比__getattr__(), __setattr__( ...

  5. python基础——面向对象进阶

    python基础--面向对象进阶 1.isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 ...

  6. python基础——面向对象的程序设计

    python基础--面向对象的程序设计 1 什么是面向对象的程序设计 面向过程的程序设计的核心是过程,过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优 ...

  7. 第二十七节:Java基础面向对象-静态,单例模式,继承详情知识点

    前言 Java基础面向对象-静态,单例模式,继承详情知识点.静态-static关键字,static变量,静态代码块,代码块(不加静态),对象创建过程,单例模式,继承. 静态-static关键字 // ...

  8. 第二十五节:Java语言基础-面向对象基础

    面向对象 面向过程的代表主要是C语言,面向对象是相对面向过程而言,Java是面向对象的编程语言,面向过程是通过函数体现,面向过程主要是功能行为. 而对于面向对象而言,将功能封装到对象,所以面向对象是基 ...

  9. Java基础-面向对象第三大特性之多态(polymorphism )

    Java基础-面向对象第三大特性之多态(polymorphism) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.多态概述 多态是继封装,继承之后,面向对象的第三大特性,多态的 ...

  10. Java基础-面向对象第二特征之继承(Inheritance)

    Java基础-面向对象第二特征之继承(Inheritance) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.继承的概述 在现实生活中,继承一般指的是子女继承父辈的财产.在程序 ...

随机推荐

  1. Centos6.8搭建Git服务(git版本可选)

    搭建Git服务器需要准备一台运行Linux的机器,本文以Centos6.8纯净版系统为例搭建自己的Git服务. 准备工作:以root用户登陆自己的Linux服务器. 第一步安装依赖库 [root@lo ...

  2. oracle用sql 语句如何向表中插入时间?

    有关日期的操作中,更多的是涉及系统当前时间,用sysdate表示即可,如果是插入其他非系统时间的日期类型数据的话,用to_date转换再插入就可以了.例: insert into 表(c_date) ...

  3. sp_configure命令开启组件Agent XPs,数据库计划(Maintenance Plan)

    新建“计划(Maintenance Plan)”时,记得执行计划需把SQL的“代理服务(SQL Server Agent)”也开启 出现对话框:“SQL Server 阻止了对组件 'Agent XP ...

  4. .NETFramework、C#、VisualStudio 这三者之间关系,你了解吗!

    .NetFrameWork 是微软开发的以"虚拟机"运行,以通用语言运行库为基础,在其上面进行各种语言开发的一个开发平台. C# 是一个和平台更好交互,以托管在虚拟机上的一个语法糖 ...

  5. 通过phoenix创建hbase表失败,创建语句卡住,hbase-hmaster报错:exception=org.apache.hadoop.hbase.TableExistsException: SYNC_BUSINESS_INFO_BYDAY_EFFECT

    问题描述: 前几天一个同事来说,通过phoenix创建表失败了,一直报表存在的错误,删除也报错,然后就针对这个问题找下解决方案. 问题分析: 1.通过phoenix创建表,一直卡住不动了.创建语句如下 ...

  6. python2.0 s12 day3

    s12 day3 视频每节的内容 03 python s12 day3 本节内容概要 第三天的主要内容 上节没讲完的: 6.集合 7.collections 1)计数器 2)有序字典 3)默认字典 4 ...

  7. java.lang.OutOfMemoryError 错误分类

    java.lang.OutOfMemoryError: Java heap space原因:Heap内存溢出,意味着Young和Old generation的内存不够.解决:调整java启动参数 -X ...

  8. oracle云部署

    公司最近把一个项目迁移到了oracle云中,现在整理步骤如下: Application deployment on Oracle DCS & JCS 前言 在本文档中,将会指导您从头开始创建一 ...

  9. 《C++ Primer Plus》14.2 私有继承 学习笔记

    C++(除了成员变量之外)还有另一种实现has-a关系的途径——私有继承.使用私有继承,基类的公有成员和保护成员都将成为派生类的私有成员.(如果使用保护继承,基类的公有成员和保护成员都将称为派生类的保 ...

  10. 【python系列】SyntaxError:Missing parentheses in call to 'print'

    打印python2和python3的区别 如上图所示,我的 PyCharm安装的是python3.6如果使用print 10会出现语法错误,这是python2.x和python3.x的区别所导致的.