面向对象 简单介绍

1、什么是面向对象?

面向对象编程是一种计算机编程架构,oop的一条基本原则是计算机程序是由单个能够起到子程序运用的单元或对象组合而成,oop达到了软件工程的三个目标:重用性,灵活性和扩展性。

2、类和对象的关系

类与对象的关系就如模具和铸件的关系,类的实例化的结果就是对象,而对对象的抽象就是类,类描述了一组有相同特性(属性)和相同行为的对象。

举例说明,类和对象的关系,就好比你去中关村买pc(电脑),你要买的是组装pc的零件。你有一个配置单,你要买的所有的零件都在这个配置单上面。然而这 个配置单你就可以把它看做是一个类,你按照配置单上面的零件组装成的电脑就是对象,你按照配置单组装十台电脑那么就有是个对象,你对其中一台电脑做出改 变,配置单是不会变的,如果你对配置单做出改变那么十台电脑都会改变,这就是类和对象的关系(类的实例化结果就是对象)。

3、类的概念

类是具有相同属性和服务的一组对象的集合。

4、对象的概念

对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组服务组成。

5、什么是面向对象编程?

你把每个独立的功能模块抽象成类,形成对象,有多个对象组成这个系统,这些对象之间能够接收信息,处理数据和向其它对象发送信息等等相互作用。就构成了面向对象的程序。注:面向对象程序的单位就是对象。

6、如何抽象一个类?如何实例化一个对象?如何使用对象中的成员?

1、

class 类名{   //使用关键字class   后面加上你想要的类名 以及加上一对大括号,这样一个类的结构就定义出来了

}

2、

$db = new  类名;    //使用new关键字来生成一个对象。一个类可以实例化多个对象,每个对象都是独立的。每个对象那个都包含了类的属性和方法。

3、

在对象的外部去访问对象中成员的形式

要想访问对象中的成员就要使用一个特殊操作符“->”来完成对象成员的访问。

访问对象属性 :  $db->属性();

访问对象方法 :  $db->方法();

在对象的内部去访问对象中成员的形式

访问对象属性:$this->属性();

访问对象方法:$this->方法();

7、 构造函数

1、构造函数可以接受参数,能够在创建对象时赋值给对象属性。2、构造函数可以调用类方法或其他函数。3、构造函数可以调用其他类的构造函数。

function __construct(){

parent::__construct();//调用父类的构造函数;

classname::__construct();//调用其他类的构造函数    classname是类名

}

析构函数

1、析构函数是在销毁对象时,自动调用,不能显示的调用。2、析构函数不能带参数。

当对象被unset();销毁时调用析构函数。

8、封装性

1、封装性是面向对象的三大特性之一,封装性就是把对象的属性和服务结合成一个独立的相同单位,并尽可能的隐蔽对象的内部细节,包含两个含义:1、把对象 的全部属性和全部服务结合在一起,形成一个不可分割的独立单位(即对象);2、信息隐蔽,尽可能的隐藏对象的内部细节,对外形成一个边界(或者说形成一道 屏障),只保留有限的对外接口使之与外部发生联系。

封装的原则

要求使对象以外的部分不能随便存取对象的内部数据(属性),从而有效的避免了外部错误对对象的”交叉感染“,使错误局部化,减少查错和排错的难度。

9、__set( ),  __get( ),  __isset( ),  __unset( ) 四个方法的应用

1、__set()函数:自动执行,为类的私有属性进行赋值。有两个参数(属性名称,给属性赋值);

2、__get()函数:自动执行,在类的外部获取类的私有属性,有一个参数(属性名称);

3、__isset()函数:判断类中的变量是否存在,存在返回true,否则返回false,如果类中的变量是私有的要在类加上一个__isset()方法,自动执行。

4、__unset()函数:删除类中的变量,如果类中的变量是私有的要在类中加上一个__unset()方法,自动执行。

10、类的继承

继承是面向对象的三个重要特性的一个方面,他是至建立一个新的派生类,从一个或多个先前定义的类中继承数据核函数。

在php和Java语言里面没有多继承,只有单继承,也就是说,一个类只能直接从一个类中继承数据,这就是单继承。

11、在子类中覆盖父类中的方法。

把要覆盖的父类的方法原有的功能再加上一点自己的功能,可以通过两种方法实现在子类中调用父类被覆盖的方法

1、“类名::方法名()”调用父类中被覆盖的方法

2、“parent::方法名()”调用父类中被覆盖的方法

这两种方法都可以实现,但是不要用类名而是应该用parent,parent指的就是子类在extends声明中的父类,这样就可以避免在多个地方使用父 类的名字,还有就在实现的过程中如果要修改,只要修改extends声明的部分。

注意:子类中方法的访问权限一定不能低于父类被覆盖方法的访问权限,也就是一定要高于或等于父类方法的访问权限。

12、访问类型(public(共有的、默认)、protected(受保护的)、private(私有的))三种

1、public  公有修饰符   类中的成员、属性、方法、访问没有限制,所有的外部成员都可以访问。

2、protected  受保护修饰符     被修饰的类,类中的成员、属性、方法不能被该类外部的代码访问。但是对于该子类有访问权限。

3、private     私有修饰符    被定义的成员,对于同一个类的所有成员是可以访问的,外部是没有访问权限的,对于该子类也不能访                                              问被定义private的成员。

13、final关键字的应用

final关键字只能用来定义定义类和定义方法,不能使用final来定义成员属性,因为final是常量的意,我们在php5中定义常量使用的是 define()函数,所以不使final定义成员属性。被final定义的类不能被继承,被final定义的方法不能被子类覆盖。

14、static和const关键字的使用(self::)

static成员能够限制外部的访问,static的成员是属于类的,不属于任何对象的实例。

静态成员被这个类的每个实例对象所共享,使用对象访问不到静态成员

类里面的静态方法只能访问类的静态的属性,静态的方法是不能用对象调用的,而是使用类名来访问

在静态方法中访问其他静态成员我们使用的是一个特殊的类“self”代表这个静态方法所在的类   即:self::成员属性

const是一个定义常量的关键字   访问方法   类名::属性    self::属性    注:    不加$符号

15、__toString的应用

在类中定义__tostring()方法可以直接输出对象。

16、__call的使用

处理调用错误

17、抽象类和抽象方法

1、抽象方法

在类里面定义的没有方法体的方法就是抽象方法,所谓的没有方法体指的是,在方法声明的时候没有大括号以及其中的内容,而是直接在声明时在方法名后加上分号结束,另外在声明抽象方法时还要加一个关键字“abstract”来修饰

例如::abstract function fun1();

   2、抽象类

只要一个类里面有一个方法是抽象方法,那么这个类就要定义为抽象类,抽象类也要使用“abstract”关键字来修饰;在抽象类里面可以有不是抽象的方法 和成员属性,但只要有一个方法是抽象的方法,这个类就必须声明为抽象类,使用”abstract”来修饰

时间: 2024-10-06 06:32:56

面向对象 简单介绍的相关文章

面向对象 简单介绍 对象与过程的区别

面向对象(Object Oriented,OO) 是当前计算机界关心的重点,它是90年代软件开发方法的主流.面向对象的概念和应用已超越了程序设计和软件开发, 扩展到很宽的范围.如数据库系统.交互式界面.应用结构.应用平台.分布式系统.网络管理结构.CAD技术.人工智能等领域. 从世界观的角度可以认为:   1.面向对象的基本哲学是认为世界是由各种各样具有自己的运动规律和内部状态的对象所组成的:   2.不同对象之间的相互作用和通讯构成了完整的现实世界.  从方法学的角度可以认为: 1.面向对象的

python(23)- 面向对象简单介绍

面向概述 面向过程:根据业务逻辑从上到下写垒代码 面向过程的设计的核心是过程,过程即解决问题的步骤, 面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西 优点:极大降低了程序的复杂性 缺点:一套流水线或者流程就是用来解决一个问题,生产汽车的流水线无法生产汽水,即便是改造也要大改,牵一发而动全身. 函数式:将某功能代码封装到函数中,以后无需重复写代码,调用方便 面向对象:对函数进行分类和封装,"更快更好更强". 面向对象的程序核心是对象.如来安排唐僧,沙和尚,猪八戒,

简单介绍Javascript匿名函数和面向对象编程

忙里偷闲,简单介绍一下Javascript中匿名函数和闭包函数以及面向对象编程.首先简单介绍一下Javascript中的密名函数. 在Javascript中函数有以下3中定义方式: 1.最常用的定义方式: function functionVal(variable){ return 3*variable; } 2.使用Function构造函数,将函数的参数和函数体内容作为字符串参数[不建议使用]: var objFunction=new Function('variable','return 3

plsql的环境与介绍:环境的搭建和plsql的简单介绍

PLSQL编程 1.环境的搭建 (1)创建一个存储表空间 SQL> conn /as sysdbaConnected. SQL> create tablespace plsql datafile '/u01/oracle/oradata/ORCL/plsql01.dbf' size 1G; Tablespace created. (2)创建PLSQL用户SQL> create user plsql identified by plsql default tablespace plsql;

java 的简单介绍

一.Java 特点     1.简单: 和C++相比较     2.面向对象     3.跨平台    由于它是先编译后解释 + JVM(屏蔽底层操作系统的差异) 二.程序的运行一般有两种:     1.编译  源文件 ------> 编译器  机器码文件       快  无法跨平台     2.解释  源文件 ------> 解释器  逐行翻译并运行   慢  可以跨平台 三.Java运行机制: 先编译,后解释     .java 源文件  -------> 编译器 .class 字

Swift中协议的简单介绍

熟悉objective-c语言的同学们肯定对协议都不陌生,在Swift中苹果将 protocol 这种语法发扬的更加深入和彻底.Swift语言中的 protocol 不仅能定义方法还能定义属性,配合 extension 扩展的使用还能提供一些方法的默认实现,而且不仅类可以遵循协议,现在的枚举和结构体也能遵循协议了.基于此本文从 1,协议中定义属性和方法 , 2,协议的继承.聚合.关联类型 , 3,协议的扩展 , 4,Swift标准库中常见的协议 , 5,为什么要使用协议 5个方面结合自身的学习经

内存数据网格IMDG简单介绍

1 简单介绍 将内存作为首要存储介质不是什么新奇事儿,我们身边有非常多主存数据库(IMDB或MMDB)的样例.在对主存的使用上.内存数据网格(In Memory Data Grid,IMDG)与IMDB相似,但二者在架构上全然不同. IMDG特性能够总结为下面几点: ?  数据是分布式存储在多台server上的. ?  每台server都是active模式. ?  数据模型一般是面向对象和非关系型的. ?  依据须要.常常会增减server. 此外,IMDG与普通缓存系统也是不同的. 相同地,在

Django - Django框架 简单介绍

Django框架 简单介绍 本文地址: http://blog.csdn.net/caroline_wendy/article/details/29172271 1. 介绍 Django是一个开放源码的Web应用框架, 由Python写成. 採用了MVC的软件设计模式, 即模型M, 视图V和控制器C. 它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的站点的, 并于2005年7月在BSD许可证下公布. 这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的.

iOS开发数据库篇—FMDB简单介绍

iOS开发数据库篇—FMDB简单介绍 一.简单说明 1.什么是FMDB FMDB是iOS平台的SQLite数据库框架 FMDB以OC的方式封装了SQLite的C语言API 2.FMDB的优点 使用起来更加面向对象,省去了很多麻烦.冗余的C语言代码 对比苹果自带的Core Data框架,更加轻量级和灵活 提供了多线程安全的数据库操作方法,有效地防止数据混乱 3.FMDB的github地址 https://github.com/ccgus/fmdb 二.核心类 FMDB有三个主要的类 (1)FMDa