面向对象

1.构造函数
  首要执行

2.析构函数
  最后执行

3.三大特性
  a、继承
  b、多态
  c、封装

4.访问修饰词


面向对象的相关知识点
1.属性:能描述对象特征的
2.方法:对象的行为
3.对象:有属性有方法并且真实存在可以描述的东西就是对象   万物皆对象
4.类:有相同属性、相同方法的对象的集合就是类
5.构造函数:
   a、首要执行
   b、可以接受参数
   c、能够创建对象时赋值给对象属性
6.面向对象的三大特征(三大特征):继承、多态、封装
7.继承:
   1.面向对象三大特征之一
   2.开放性扩展性
   3.增加了代码的可重用性
   4.提高了代码的可维护性
   5.继承使用子类去扩展父类
   6.继承关键词 extends
   7.父类使用构造函数的时候,子类去继承,子类中的构造函数需要
        parent::__construct($name, $age, $sex);
8.封装:
   1.不用去知道内部的具体实现,拿过来就用


魔术方法
  __construct()
  __destruct()
  __tostring():当对象被当成string调用时,这个方法会被自动调用
  __invoke():当对象当成对象调用时,这个方法会被自动调用
  __call():当对象访问不存在的方法名称时,__call方法会被自动调用
  __callstatic():当对象访问不存在的静态方式名称时,__callStatic()方法会被自动调用,在访问修饰词后面加入static关键字
  __get():这个方式用来获取私有属性的属性值,有一个参数,参数传入你要获取的成员属性的名称,返回获取的属性值
  __set():这个方法是用来设置私有属性属性值,有两个参数,第一个参数为要设置值的属性名,第二个参数是要属性设置值,没有返回值
  __isset():当使用isset()函数判断属性是否存在或者是否为空时会自动触发,只能判断私有属性
  __unset():当用unset销毁对象的不可见属性时
  __clone()

接口笔记:
1.实现接口跟继承很相似,但是接口不能直接创建(new)自己的对象
2.interface 关键字用于定义接口
3.接口里面的方法不需要由方法的实现
4.implements 关键字用于表示实现某个接口
5.实现了某个接口后,必须提供接口中定义的方式的具体实现
6.可以实现instanceof 关键字类判断某个对象是否实现了接口
7.可以用extends让接口继承接口,父级口定义的方式也需要在这个类里面具体实现



isset()检查是否设置
unset()销毁变量



我对面向对象的三大特征 继承,封装,多态的理解:
一 继承
    继承概念:一个类继承另一个类,则称继承的类为子类,被继承的类为父类。
    目的:实现代码的复用。
    理解:子类与父类的关系并不是日常生活中的父子关系,子类与父类而是一种特殊化与一般化的关系,是is-a的关系,子类是父类更加详细的分类。如 class dog 继承于 animal,就可以理解为dog is a animal.注意设计继承的时候.
    结果:继承后子类自动拥有了父类的属性和方法,子类可以写自己特有的属性和方法,目的是实现功能的扩展,子类也可以复写父类的方法即方法的重写。

 二 封装
    概念:封装也称为信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只
保留一些对外接口使之与外部发生联系。系统的其他部分只有通过包裹在数据外面的被授权的操作来与这个抽象数据类型交流与交互。也就是说,用户无需知道对象内部方法的实现细节,但可以根据对象提供的外部接口(对象名和参数)访问该对象。

    好处:(1)实现了专业的分工。将能实现某一特定功能的代码封装成一个独立的实体后,各程序员可以在需要的时候调用,从而实现了专业的分工。(2)隐藏信 息,实现细节。通过控制访问权限可以将可以将不想让客户端程序员看到的信息隐藏起来,如某客户的银行的密码需要保密,只能对该客户开发权限。

三、多态
    概念:相同的事物,调用其相同的方法,参数也相同时,但表现的行为却不同。

    理解:子类以父类的身份出现,但做事情时还是以自己的方法实现。子类以父类的身份出现需要向上转型(upcast),其中向上转型是由JVM自动实现的, 是安全的,但向下转型(downcast)是不安全的,需要强制转换。子类以父类的身份出现时自己特有的属性和方法将不能使用。

“面向过程”和“面向对象”的区别

    面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。 
    可以拿生活中的实例来理解面向过程与面向对象,例如五子棋,面向过程的设计思路就是首先分析问题的步骤:
        1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤 2,9、输出最后结果。把上面每个步骤用不同的方法来实现。
        如果是面向对象的设计思想来解决问题。面向对象的设计则是从另外的思路来 解决问题。整个五子棋可以分为1、黑白双方,这两方的行为是一模一样的,2、棋盘系统,负责绘制画面,3、规则系统,负责判定诸如犯规、输赢等。第一类对 象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种变化,同时利用 第三类对象(规则系统)来对棋局进行判定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值