面向对象笔记(1)

什么是面向对象?
人类把未知的事物进行和自己已知事物类比、归类。
经过先辈对未知的事物进行归类。
-----------------------------------
类比====》归类 万事万物皆对象
类《====》对象 类是对象的抽象,对象是类的实例
土豆-马铃薯-洋芋:洋人的东西,我们国内有芋头。所以叫洋芋。
-----------------------------------
类当中我们可以引出:
属性【定义事物的外观形状,或者和事物相关联的内容】
行为【当前事物可以做的事情,或者利用当前事物能做的事情】
所有这些内容都是绝大多数人都同意认可的。

-----------------------------------
OOA:《面向对象分析方法》
OOD:《面向对象设计》
OOP:《面向对象》
-----------------------------------
继承:
关键字[extend] [parent] [final]
描述:我们可以把继承叫做:重用(复用)
父类《====》子类 重写
-----------------------------------
封装:
关键字[public] [protected] [private]
描述:简单来说封装即隐藏。

多态(抽象):
关键字[abstract] [interface===>implements]
描述:变化的形态(同一个变量可以指定不同的形态)
PHP是一个弱类型。可以随便指定一个
-----------------------------------
抽象
关键字:abstract

接口
出现的目的:类里面定义函、数的模板。
关键字:interface
定义公共的静态常量。

-----------------------------------

$this(当前类的对象) class===>new static(当前类当中的静态资源) const(类当中定义常量) self(访问类内部的静态变量) ::范围解析操作符
类当中只能使用const定义常量
扩展出来的内容
传统定义来说,抽象只是多态里面的一种表现形式。

-----------------------------------

魔术方法

魔术方法不能直接被调用,一旦满足条件自动被调用
魔术方法总共有15个。
构造函数:创建时自动被调用。

析构函数:销毁时自动被调用。

//__get()方法用来获取私有属性 带一个参数
//__set()方法用来设置私有属性 带两各参数

-----------------------------------
类的自动加载
类的自动加载是指在外面的页面中并不需要去“引入”类文件,但是程序会在需要的时候动态加载需要的类文件。
为甚会使用类的加载?
__autoload魔术函数【只能一个】
spl_autoload_register函数【可以定义多个】
------------------------------------
类型约束
在做参数传递的时候我的类型是不固定的。在传入的时候我传A,但是不小心传入了B,这就会导致XX。
命名空间

时间: 2024-11-03 21:48:50

面向对象笔记(1)的相关文章

JS面向对象笔记二

菜单导航,<JS面向对象笔记一>,  参考书籍:阮一峰之<JavaScript标准参考教程> 一.构造函数和new命令 二.this关键字 三.构造函数和new命令 四.构造函数和new命令 五.构造函数和new命令 六.构造函数和new命令 七.构造函数和new命令 八.构造函数和new命令 一.构造函数和new命令 1.构造函数 JavaScript语言的对象体系,不是基于"类"的,而是基于构造函数(constructor)和原型链(prototype) 为

Java面向对象笔记3

Java类必须包含一个或一个以上的构造器,使用构造器最大的好处就是在创建对象时,对类的Field进行初始化(当创 建一个对象的时候,系统为这个对象的Field进行默认初始化,如果是基本类型如数值型赋值为0,如果是引用类型的 Field赋值为null),如以下代码: public class Teacher { private String name; private int age; public Teacher(){ } public Teacher(String name,int age){

Java面向对象笔记5

封装.继承.多态是面向对象的三大特征,继承是实现类重用的重要手段,但是继承会带来一个最大的坏处,那就是破坏 封装.因此接下来介绍组合,组合是实现类重用的重要方式,能提供更好的封装性. 子类扩展父类的时候,可以从父类那里继承得到Field和方法,假设现在我们有足够的权限,那么子类就可以直接复用父 类的Field和方法,但继承在带来高度复用的同时,也带来了一个严重的问题,继承严重的破坏了父类的封装性.在封装 时,我们应该遵守这个原则:每个类都应该封装它内部信息和实现细节,而只暴露必要的方法给其他类使

PHP面向对象笔记解析

PHP的面向对象是很重要的内容,也是很常用的内容.所以现在就把PHP面向对象进行整理了一下. 顺带,我会在后面把我整理的一整套CSS3,PHP,MYSQL的开发的笔记打包放到百度云,有需要可以直接去百度云下载,这样以后你们开发就可以直接翻笔记不用百度搜那么麻烦了.  笔记链接:http://pan.baidu.com/s/1qYdQdKK 密码:pvj2 一.面向对象的基本概念 1.什么是面向对象? 对象 面向 由于目前都还没有一个统一的概念,所以所能理解的就是一个物体被抽象出来,每个物品都是一

面向对象笔记基础

面向对象基础笔记 面向过程 面向对象 类的初步理解 __init__方法的理解 区分类的属性与对象的属性 继承:派生 组合 抽象类 多态与多态性 封装: 类和对象的隐藏属性 面向过程 核心是过程,即解决问题的步骤,比如设计一条流水线, 是机械的思维方式. 优点: 将复杂的问题流程化,进而简单化; 缺点: 可扩展性差; 面向对象 对象就是属性与方法的结合体. 优点: 可扩展性强; 缺点: 编程复杂度高; 应用场景:应对客户不停变化的需求,尤其是互联网应用,游戏和企业内部的应用. 类的初步理解 类是

Java面向对象笔记8

如果将一个类放在另一个类内部,那这个类就被称为内部类,内部类的主要作用如下: 1.内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类. 2.内部类成员可以直接访问外部类的私有数据,因为内部类被当成其外部类成员,同一个类的成员之间可以互相 访问.但外部类不能访问内部类的实现细节,例如内部类的成员变量. 3.匿名内部类适合用于创建那些仅需要一次使用的类. 成员内部类被分为两种:静态内部类和非静态内部类,使用static修饰的成员内部类是静态内部类,没有使用stat

Java面向对象笔记4

封装.继承.多态是面向对象的三大特征,在Java中什么是多态? Java引用变量有两种类型,分别是编译时类型和运行时类型.何为编译时类型,编译时类型就是由声明该变量时使用的类型决定,而运行时类型是由实际赋给该变量的对象决定 的,也就是说如果编译时类型和运行时类型不一致时,就可能出现上面提到的多态. 我们看下下面的程序: class BaseClass { public String name = "BaseClass"; public void base() { System.out.

java面向对象笔记

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 1.面向对象时一种思想,将功能封装进对象,强调具备了功能的对象 2.面向对象三个特征: 封装.继承.多态.  找对象,建立对象,使用对象,维护对象之间的关系 3.类和对象的关系: 类就是对现实生活中事物的描述,是对具体的抽象 对象是这类事物实实在在的个体,具体对象是对应java在堆内存中用new建立的实体 属性对应类中的变量,行为对应类中的函数(方法),共同成为类中的成员(成员变量,成员方法)

面向对象笔记

类的特性: a.封装 1.防止数据被随意修改  2.使外部程序不需要关注对象内部的构造,只需要通过对象,对外提供的接口进行直接访问即可 b.继承 1.子类通过继承父类的方式,以最小代码量的方式,实现不同角色的共同点,和不同点 2.多继承时,继承顺序的区别  其中python2 就是深度查询,python3就是广度查询 C.多态 pass 什么是类? 其实类就是一个函数的集合即 class 类: def 函数1(): pass def 函数2(): pass 对象=类() #这就是实例化的过程 对

面向对象笔记一

js 面向对象的基本概念和基本使用方法 -> js 是不是一个面向对象的语言(众说纷纭)? 不是:与传统面向对象的理论语言有矛盾.C#,Java. 是:js里面到处都是对象,数组,时间,正则... 和 DOM.也可以像传统面向对象的语言那样用 new 的方式创建对象 -> js是一个基于对象的多范式编程语言. 面向过程的方式 面向对象的方式 函数式 递归与链式 例: Jquery 链式编程 比如: 给 div 标签添加样式 $( 'div' ).css( 'border', '1px soli