2019-07-22 面向对象 类
2019-07-23 08:44:02来源:博客园 阅读 ()
面向对象
- 什么是面向对象?
面向对象是一种计算机编程架构,英文是Object Oriented Programming,简称OOP,它具有封装性,继承性,多态性。面向对象符合人们看待事物的一般规律,它也是一种编程思想,使用面向对象可以使我们的代码更简洁,更容易维护,且具有更强的可重用性,同时也达到了软件工程的三个目标:重用性、灵活性、拓展性。
类
- 什么是类?
类是具有相同属性和服务的一组对象的集合。对象抽象成类,类实例化成对象。我们可以把任何事物都当做一个对象,比如说一个人,人有姓名、性别、年龄等这些与生俱来的属性,而会说话,会走路这些技能我们把它理解为方法。我们可以把这些属性和方法都封装在一个类中,以便我们使用。
- 如何定义一个类
我们已经找到了需要使用到的属性和方法,那么如何把它封装在一个类中呢?定义一个类我们使用的关键字是class,后跟类名{ }来表示,类名的首字母一般来说需要大写。下面我们就定义一个关于大树的类,当然这个类比较简单,我们只用name、age、leaf_color、height这几个属性,方法我们只用一个output()方法。
class Tree{ //属性 var $name; var $age; var $leaf_color; var $height; //方法(服务) function output(){ echo "1"; } }
从上面我们可以看出,在类的内部定义属性用var 后跟$属性名就可以,方法用function关键字后跟方法名即可。
- 如何实例化一个类?
我们既然已经封装好了一个类,肯定是要用来使用的,那么我们怎么使用类呢?在这里我们使用一个关键字new后跟类名()来实例化一个类。
//实例化一个对象 用new关键字后跟类名表示 $willow = new Tree();
实例化一个类后,我们得到的是一个对象,把它赋给一个变量,就可以对该对象进行操作了。
- 如何给类赋值?
在上面的代码中,我们可以看到,声明类的属性并没有值,这是因为我们封装好的类,可以实例化出无数个对象,如果给了初始值,比如name我们给了“柳树”,那么我们实例化出的每一个对象的name都是柳树,这不是我们需要的,所以我们在实例化以后再进行赋值。怎样进行赋值呢?我们用对象->属性来赋值。
//给对象中的属性赋值 $willow->name = "柳树"; $willow->age = "10"; $willow->leaf_color = "green"; $willow->height = "5m";
- 赋值后如何使用呢?
我们用对象名->属性就可以使用。
echo "树名:".$willow>name.",树龄:".$willow>age.",树叶颜色:".$willow->leaf_color.",树高".$willow->height;//结果是:树名:柳树,树龄:10,树叶颜色:green,树高5m
调用方法也是同样的:
$willow->output();//结果为:1
- 如何在类的内部使用类属性?
定义好类属性后,在定义方法时,需要使用到该属性怎么办呢?这时候我们就需要用一个关键字$this->属性来实现。
class Tree{ //属性 var $name; var $age; var $leaf_color; var $height; //方法(服务) function output(){ //使用$this在类的内部访问属性 echo "树名:".$this->name.",树龄:".$this->age.",树叶颜色:".$this->leaf_color.",树高".$this->height; } }
此时我们再实例化一个类,并且访问output()方法,看看结果是什么?
$pine = new Tree(); $pine->name = "松树"; $pine->age = "15"; $pine->leaf_color = "green"; $pine->height = "10m"; $pine->output();
此刻输出结果是:树名:松树,树龄:15,树叶颜色:green,树高10m。可见我们使用$this->属性就可以在类内部使用属性。
原文链接:https://www.cnblogs.com/zhangxu-fasu/p/11226827.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- PHP设计模式之工厂模式详解 2020-02-19
- 如何直接访问php实例对象中的private属性详解 2020-02-07
- PHP对象的浅复制与深复制的实例详解 2020-01-16
- PHP面向对象多态性实现方法简单示例 2020-01-16
- PHP类的封装与继承详解 2019-12-15
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash