PHP------面向对象的特性

面向对象的特性

一、面向对象有三大特性:

封装、继承、多态。(非常重要,第一要记住!!!!!!!!!!)

二、封装

封装就是用来做类的,把一个类封装起来。做类不能随便的做。我们做类不能随便去写一个类,随便写一个类之后,别人可以在外界,通过对象就可以直接调用我们里面的成员,直接操作我们里面的成员,这样的话对于我们的类来讲,如果外界的直接操作我们的成员,那我们的这个类的安全性就低了,就说明我们做的这个类不安全了,外界可以随便访问,就不安全了,另外,类如果随便写写,直接拿对象直接调用,里面的成员属性或者成员变量,我就可以给它随便赋值,比如本来这个变量应该存的是整数,我给他赋了一个字符串,这样的话,这个类就乱了。

所以,封装的特性,

目的:让类更加安全

做法:不让外界直接访问类的成员

如何使类更加的安全的,具体做法:

【1】 让成员变为私有

class Ren//定义一个人类

{

var $nianling;  //它有一个年龄。这个年龄我不让外界直接访问,我要把它变成我这个类私有的。怎样变?就要用到访问修饰符。

}

访问修饰符,有三种:

(1)          public   公有的(所有的地方都可以访问的)

(2)          private    私有的(只有这一个类里,可以访问的到。它子类也访问不到)

(3)          protected   受保护的,(受保护的在什么情况下可以访问的到呢?在该类,还有它的子类里面可以访问的到)

也就是说,这三个,代表了三个权限。

所以,把成员变为私有的怎么变呢??

就是把var去掉,换成访问修饰符private

例子:

class Ren

{  

Private $nianling;  //私有成员。。现在$nianling就成了私有成员(私有成员外界是访问不到的)。

怎样访问不到呢??

$r=new Ren()

Echo $r->$nianling;  //我要访问这个里面的$nianling;的变量

我把它变为私有的了,还能访问的到吗??

}

例子:

显示结果:

显示结果报错了。 这个变量是个私有的,没法取访问它。

【2】 第二步:造成员方法,来操作变量

既然有nianling 它就肯定要求外界去操作它,给它赋年龄或取年龄,您如果让别人访问不到,这个nianling 就没有任何意义了。这nianling 还必须让别人访问的到,但是又不能直接访问,所以第二步就是:造成员方法,来操作变量。因为我第一步把它变成私有的了,就没法直接访问了,怎么办??要让它有意义就必须访问到,我就要造一个方法去它访问了。所以,第二步就是造一个方法。

  这个方法必须是一个公有的方法,公有的方法可以加public,也可以不加public,默认的您如果不加访问修饰符默认的就是public,所以可以加public,也可以不加,加上也没有错误。

class Ren

{

Private $nianling;

Public function SetAge($a)//做一个方法,去给$nianling 赋值 // SetAge 方法名  SetAge()要求用户传入一个值$a

{

 $this->nianling =$a;  //通过这个方法就可以赋给$nianling了

//然后,在这个方法的里面,把这个值交给$mianling 的变量

// 在这个里面$this->nianling =$a;  为什么能访问的到nianling?????因为这是在这个类里面(在该类中可以访问到)

//这样就把a的值赋给$nianling的变量了,通过这个方法就可以赋给$nianling了

}

}

$r=new Ren();

$r->SetAge(18);//调用方法给nianling赋值  // SetAge方法

Var_dump($r);//输出对象,看看这个值有没有赋进去

 

时间: 2024-10-17 04:09:04

PHP------面向对象的特性的相关文章

JAVA基础——面向对象三大特性:封装、继承、多态

JAVA面向对象三大特性详解 一.封装 1.概念: 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问. 2.好处: 只能通过规定的方法访问数据.     隐藏类的实例细节,方便修改和实现. 3.封装的实现步骤 需要注意:对封装的属性不一定要通过get/set方法,其他方法也可以对封装的属性进行操作.当然最好使用get/set方法,比较标准. A.访问修饰符 从表格可以看出从上到下封装性越来越差. B.this关键字 1.this关键字代表当前

面向对象三大特性五大原则 + 低耦合高内聚

面向对象三大特性五大原则 + 低耦合高内聚 面向对象的三大特性是"封装."多态"."继承",五大原则是"单一职责原则"."开放封闭原则"."里氏替换原则"."依赖倒置原则"."接口分离原则". 什么是面向对象 面向对象(Object Oriented,OO)是软件开发方法.面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统.交互式界面.应用结

C#面向对象三大特性

C#面向对象三大特性 面向对象的三个基本特征是:封装.继承.多态. 封装:隐藏内部功能的具体实现,只保留和外部交流数据的借口.就好比电视机,用一个外壳把内部零部件及控制电路封装起来,只提供按钮或者遥控器接口供人使用.封装可以隐藏实现细节,使得代码模块化.封装成类或结构:类和结构实际上是创建对象的模板,每个对象都包含数据,并提供了处理和访问数据的方法.(1)类定义了每个类对象(实例)可以包含什么数据和功能.举例来说,如果一个类表示客户,我们就可以定义字段customerId,name和addres

面向对象三大特性之二--【继承】

PHP中,一个类只能有一个父类,所谓继承就是去扩展父类,在设计类的时候,如果有两个或多个类有相同或者共用的部分,就将相同部分提取出来放到一个父类里面. 子类只能继承父类的公共属性和公共方法,如果父类的属性和方法有private修饰封装的话,子类是不能访问的(包括类的内部和外部),当然父类的对象也不能在外部访问,但如果是protected修饰的成员属性和方法,子类的类的内部是可以访问的($this),但子类的对象不能在外部访问. 继承的核心是扩展父类的方法,扩展方法包括两种,一种是添加父类中没有的

(1) 深入理解Java面向对象三大特性 封装 继承 多态

转眼已经工作快6年了,最开始做了2年J2EE:然后整了2年的数据仓库,主要是Cognos的报表开发:现在从事4G LTE核心网的开发,用的语言任然是Java,但写代码的机会不多,基本都是看代码找BUG,偶尔做点new feature也是在比较成熟的框架上复制.粘贴.修改,大部分时间还是在理解业务,钱多.事少.离家近,当时来这家公司图的是后面2点,2年过去了,英文水平有所提升,对敏捷开放也有一定的了解,但技术方面明显退步了或者说没有进步吧,本来以前也不怎么好,因为工作上用不到,自己也没怎么学习,所

[黑马程序员]Objective-C 面向对象三大特性之继承

基本概念 程序的世界和人类的“对象”世界在思想上是没有设么区别的,富二代继承了父母,自然就拥有了父母拥有的所有资源,子类继承了父类同样就拥有了父类所有的方法和属性(成员变量). 比如我们前文(Objective-C 面向对象三大特性之多态)中提到的Animal和Dog类: #import <Foundation/Foundation.h> @interface Animal : NSObject -(void) eat; @end @implementation Animal -(void)

面向对象编程(十四)——面向对象三大特性之多态②

面向对象最核心的机制——动态绑定,也叫多态. 通过下面的例子理解动态绑定,即多态 1 package javastudy.summary; 2 3 class Animal { 4 /** 5 * 声明一个私有的成员变量name. 6 */ 7 private String name; 8 9 /** 10 * 在Animal类自定义的构造方法 11 * @param name 12 */ 13 Animal(String name) { 14 this.name = name; 15 } 16

第十八章 面向对象的特性

学习要点:1.OOP 的封装2.OOP 的继承3.OOP 的多态 面向对象的三个主要特性是封装.继承和多态. 一.OOP的封装 隐藏对象的字段和实现细节,仅对外公开接口,控制在程序中字段的读和修改的访问级别:将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成"类",其中数据和函数都是类的成员. 字段的作用域1.public 公共的(类外可以访问)2.private 私有的(类内可以访问)3.protected 受保护的(类内和

JavaScript基础--面向对象三大特性(八):继承封装多态

一.构造函数基本用法:function 类名(参数列表){属性=参数值} 1 function Person(name,age){ 2 this.name = name; 3 this.age = age; 4 } 5 6 //创建Person对象的时候,可以直接给名字和年龄 7 var p1 = new Person('abc',80); 8 window.alert(p1.name); 9 var p2 = new Person('hello',9); 10 window.alert(p2.

黑马程序猿——JAVA面向对象的特性:封装,继承,多态

                                       - ----------android培训.java培训.java学习型技术博客.期待与您交流!------------  一.java面向对象的特性.封装.继承.多态         封装 封装是对象和类概念的主要特性. 封装.也就是把客观事物封装成抽象的类.而且类能够把自己的数据和方法仅仅让可信的类或者对象操作,对不可信的进行信息隐藏. 继承 面向对象编程 (OOP) 语言的一个主要功能就是"继承".继承