面向对象编程(面向对象编程语言)

本篇文章给大家谈谈面向对象编程,以及面向对象编程语言对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、什么是面向对象编程? 2、...

本篇文章给大家谈谈面向对象编程,以及面向对象编程语言对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

什么是面向对象编程?

一.前言

其实不管是java还是.net都是属于面向对象程序设计语言,归根结底,它们都离不开面向对象,所以什么是面向对象呢,意思就是object-oriented将对数据和对数据的操作作为一个相互依赖的关系、不可分割的整体,才用信息隐蔽技术和数据抽象,更简单地解决现实当中的问题!

上面的概念比较抽象,这里涉及到一个类的问题,通俗地说,就是把一个事物抽象出来成为类,而这个类的实例就是对象,类跟对象的关系其实就相当于设计图纸跟实物之间的关系,面向对象其实就是面向于类的!

面向对象的三大特性:封装、继承、多态!

二.基本概念

1.封装

封装的意思其实很简单:就像你使用优盘一样,优盘被封装在一个盒子里面,你根本不需要知道它是怎么工作的,你只要知道怎么用它就行了,当然用的时候是使用USB接口,对封装的类进行调用的时候也是用特定的接口进行调用的!

2.继承

继承是指一个对象从另一个对象中获得属性的过程.是面向对象程序设计的三大原则之二,它支持按层次分类的概念.例如,波斯猫是猫的一种,猫又是哺乳动物的一种,哺乳动物又是动物的一种.如果不使用层次的概念,每个对象需要明确定义各自的全部特征.通过层次分类方式,一个对象只需要在它的类中定义是它成为唯一的各个属性,然后从父类中继承它的通用属性.因此,正是由于继承机制,才使得一个对象可以成为一个通用类的一个特定实例.一个深度继承的子类将继承它在类层次中的每个祖先的所有属性.

继承与封装可以互相作用.如果一个给定的类封装了某些属性,它的任何子类将会含有同样得属性,另加各个子类所有得属性.这是面向对象程序在复杂性上呈线性而非几何增长的一个重要概念.新的子类继承其所有祖先的所有属性.子类和系统中的其他代码不会产生无法预料的交互作用.

3.多态

多态是指一个方法只能有一个名称,但可以有许多形态,也就是程序中可以定义多个同名的方法,用"一个接口,多个方法"来描述.可以通过方法的参数和类型引用.

三.封装、继承、多态之间的关系

下面我给你讲一个封装、继承、多态组合起来的例子:

在由封装,继承,多态所组成的环境中,程序员可以编写出比面向过程模型更健壮,更具扩展性的程序.经过仔细设计的类层次结构是重用代码的基础.封装能让程序员不必修改公有接口的代码即可实现程序的移植.多态能使程序员开发出简洁,易懂,易修改的代码.例如:汽车

从继承的角度看,驾驶员都依靠继承性来驾驶不同类型(子类)的汽车,无论这辆车是轿车还是卡车,是奔驰牌还是菲亚特牌,驾驶员都能找到方向盘,手刹,换档器.经过一段时间驾驶后,都能知道手动档与自动档之间的差别,因为他们实际上都知道这两者的共同超类:传动装置.

从封装的角度看,驾驶员总是看到封装好的特性.刹车隐藏了许多复杂性,其外观如此简单,用脚就能操作它.发动机,手刹,轮胎大小的实现对与刹车类的定义没有影响.

从多态的角度看,刹车系统有正锁反锁之分,驾驶员只用脚踩刹车停车,同样的接口可以用来控制若干种不同的实现(正锁或反锁)

这样各个独立的构件才被转换为汽车这个对象的.同样,电脑培训认为可以通过使用面向对象的设计原则,程序员可以把一个复杂程序的各个构件组合在一起,形成一个一致,健壮,可维护的程序。

面向对象编程是什么意思

面向对象编程又称OOP,是一种计算机编程架构。本质是以建立模型体现出来的抽象思维过程和面向对象的方法。

OOP的一条基本原则是计算机程序由单个能够起到子程序作用的单元或对象组合而成。OOP达到了软件工程的三个主要目标:重用性、灵活性和扩展性。OOP=对象+类+继承+多态+消息,其中核心概念是类和对象。

面向对象程序设计方法是尽可能模拟人类的思维方式,使得软件的开发方法与过程尽可能接近人类认识世界、解决现实问题的方法和过程,也即使得描述问题的问题空间与问题的解决方案空间在结构上尽可能一致,把客观世界中的实体抽象为问题域中的对象。

扩展资料

面向对象程序设计以对象为核心,该方法认为程序由一系列对象组成。类是对现实世界的抽象,包括表示静态属性的数据和对数据的操作,对象是类的实例化。对象间通过消息传递相互通信,来模拟现实世界中不同实体间的联系。在面向对象的程序设计中,对象是组成程序的基本模块。

模型是用来反映现实世界中事物特征的。任何一个模型都不可能反映客观事物的一切具体特征,只能对事物特征和变化规律的一种抽象,且在所涉及的范围内更普遍、更集中、更深刻地描述客体的特征。通过建立模型而达到的抽象是人们对客体认识的深化。

参考资料来源:百度百科-面向对象程序设计

什么叫面向对象编程

转自:伊图网[]在阐述类的概念之前我们来先说说面向对象编程的概念:面向对象的程序设计(Object-Oriented Programming,简记为OOP)立意于创建软件重用代码,具备更好地模拟现实世界环境的能力,这使它被公认为是自上而下编程的优胜者。它通过给程序中加入扩展语句,把函数“封装”进编程所必需的“对象”中。面向对象的编程语言使得复杂的工作条理清晰、编写容易。说它是一场革命,不是对对象本身而言,而是对它们处理工作的能力而言。对象并不与传统程序设计和编程方法兼容,只是部分面向对象反而会使情形更糟。除非整个开发环境都是面向对象的,否则对象产生的好处还没有带来的麻烦多。有人可能会说PHP不是一个真正的面向对象编程的语言, PHP 是一个混合型 语言,你可以使用面向对象编程,也可以使用传统的过程化编程。然而,对于大型项目的开发,你可能想需要在PHP中使用纯的面向对象编程去声明类,而且在你的项目开发只用对象和类。随着项目越来越大,使用面向对象编程可能会有帮助,面向对象编程代码很容易维护,容易理解和重复使用,这些就是软件工程的基础。在基于Web的项目中应用这些概念就成为将来网站成功的关键。

对象(Object)是问题域或实现域中某些事物的一个抽象,它反映此事物在系统中需要保存的信息和发挥的作用;它是一组属性和有权对这些属性进行操作的一组服务的封装体。 关于对象要从两方面理解:一方面指系统所要处理的现实世界中的对象;另一方面对象是计算机不直接处理的对象,而是处理相应的计算机表示,这种计算机表示也称为对象。简单的来说,一个人就是一个对象,一个尺子也可以说是个对象。当这些对象可以用数据直接表示时,我们就称他为属性,尺子的度量单位可以是厘米,公尺或英尺,这个度量单位就是尺子的属性。

在PHP里我们可以定义一个类,类(Class)就是指变量与一些使用这些变量的函数的集合。PHP是一种松散类型的语言,所以通过类型重载不起作用,通过参数的个数不同来重载也不起作用。 有时在面向中重载构造函数非常好,这样你可以通过不同的方法创建对象(传递不同数量的参数)。在PHP中就是通过类来实现的。

在PHP中是通过类来完成信息封装的,在PHP中定义类的语法是:

?php

class Class_name // 在面向对象编程类中,习惯上类的第一个字符为大写,并且必须符合变量的命名规则。

{

//函数与变量的集合

}

?

在定义类时你可以按自已的喜好的格式进行定义,但最好能保持一种标准,这样开发起来会更有效些。

数据成员在类中使用"var"声明来定义,在给数据成员赋值之前,它们是没有类型的。一个数据成员可以是一个整数,一个数组,一个相关数组(Associative Array)或者是一个对象。

下面是一个类定义的实际例子:

?php

class Student

{

var $str_Name; //姓名

var $str_Sex; //性别

var $int_Id; //学号

var $int_English; //英语成绩

var $int_maths; //数学成绩

}

?

这是一个很普通定义类的简单例子,用于显示学生的学习成绩,类名为Student,Student类包涵了一个学生的基本属性:姓名、性别、学号、英语成绩和数学成绩。

function我们称之为在类中被定义的函数,在函数中访问类成员变量时,你应该使用$this-var_name,其中var_name指的是类中被声明的变量,否则对一个函数来说,它只能是局部变量。 我们先定义一个Input()的函数,用来给实例中的对象赋以初值:

function Input ( $Name, $Sex, $Id, $Englis, $Maths)

{

$this-str_Name=$Name;

$this-str_Sex =$Sex;

$this-int_Id =$Id;

$this-int_Englis=$English;

$this-int_Maths=$Maths;

}

现在我们再定义一个叫“ShowInfo()”的函数,用于打印学生的基本情况:

function ShowInfo() //定义ShowInfo()函数

{

echo (“姓名:$this-str_Namebr

”);

echo (“性别:$this-str_Sex br

”);

echo (“学号:$this-int_Id br

”);

echo (“英语成绩:$this-int_English br

”);

echo (“数学成绩:$this-int_Maths br

”);

}

而定义好的类则必须使用new关键词来生成对象:

$A_student=new Student;

例如我们要为一个名为$Wing的对象创建实例,并进行赋值,可以使用下面的代码:

$Wing =new Student; //用new关键词来生成对象

$Wing -Input (“Wing”,”男”,33,95,87);

//分别输入Wing的姓名、性别、学号、英语成绩、数学成绩,其中姓名和性别是字符型变量,所以需要用双引号,其它为数值型变量则不需要。

通过下面这段完整的源代码,我们就可以很清楚的看到类在PHP是怎么被运用的:

?php

class Student

{

var $str_Name;

var $str_Sex;

var $int_Id;

var $int_English;

var $int_maths;

function Input ( $Name, $Sex, $Id, $English, $Maths)

{

$this-str_Name=$Name;

$this-str_Sex =$Sex;

$this-int_Id =$Id;

$this-int_English=$English;

$this-int_Maths=$Maths;

}

function ShowInfo()

{

echo (“姓名:$this-str_Namebr

”);

echo (“性别:$this-str_Sex br

”);

echo (“学号:$this-int_Id br

”);

echo (“英语成绩:$this-int_English br

”);

echo (“数学成绩:$this-int_Maths br

”);

}

}

$Wing = new Student;

$Wing-Input (“Wing”,”男”,33,95,87);

$Paladin = new Student;

$Paladin-Input (“paladin”,”女”,38,58,59.5);

$Wing-ShowInfo();

$Paladin-ShowInfo();

?

执行结果应是这样的:

姓名:Wing

性别:男

学号:33

英语成绩:95

数学成绩:87

姓名:Paladin

性别:女

学号:38

英语成绩:58

数学成绩:59.5

PHP现有的版本较以前的版本在对面向对象编程的支持方面有了很大的改善,但支持的还不是很完整,不过现阶段PHP对面向对象编程语言提供的支持不但有利于我们设计程序的结构,对于对程序的维护也能提供很大的帮助。

上一篇:开心超人联盟之奇幻谜瑞岛(开心超人联盟之异星迷航)
下一篇:虚拟化存储(虚拟化存储和非虚拟化存储的区别)

为您推荐

发表评论