面相对象的概念?
面向对象编程的概念:面向对象的程序设计(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_Name
”);
echo (“性别:$this->str_Sex
”);
echo (“学号:$this->int_Id
”);
echo (“英语成绩:$this->int_English
”);
echo (“数学成绩:$this->int_Maths
”);
}
而定义好的类则必须使用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_Name
”);
echo (“性别:$this->str_Sex
”);
echo (“学号:$this->int_Id
”);
echo (“英语成绩:$this->int_English
”);
echo (“数学成绩:$this->int_Maths
”);
}
}
$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对面向对象编程语言提供的支持不但有利于我们设计程序的结构 , 对于对程序的维护也能提供很大的帮助 。
为什么有些明明是夫妻眼夫妻相而且灵魂类似的一对男女 , 还是会分手?
那只是你觉得 , 长相和能不能一起生活不相关
- 面相中乍腮和反腮长什么样《腮骨突出的面相有什么代表意思》
- 《豹眼圆睁》 一如故管中豹耳闻目前顾后尘莫及面面相用看的意思填字快呀
- 《大疆精灵4如何拍出球面相片》 大疆精灵Phantom 4 Pro全景照片的分辨率是多少?
- 《苹果x锁定页面相机和手电筒怎么用》 苹果X这么在解锁屏幕上设置手电筒和照相机
- 嘴唇薄的女人旺夫吗《嘴唇薄的女人代表什么意思》
- 《额头上的眉毛与头发长的距离很近,面相好不好?》 面相当中眉毛与发际间是什么宫
- 赞美教师的八字标题《赞美“老师”的8字成语有哪些?》
- 2 转帖 我是如何断四柱八字的《八字断验技巧篇》
- 英国研究:肥胖致人智力衰退
- 减肥节目被骂虐待胖子?贵州台回应:观众需刺激