标签:通过 const 魔术 耦合 load lstat 结束 返回 vat
本文主要阐述面向对象的基本概念,如有问题,还请斧正。
首先说明,涉及的一些知识点,算是提纲吧 。
1 类的基本概念;2 对象的基本概念;3 访问控制;4 构造函数,析构函数;5魔术方法;6 接口;7 多态;8 封装;9继承;10 static与final
一,类的基本概念
1 什么是类? 类即拥有相同属性和行为的一个集合体。举个例子 ,我们日常生活中的车 是一个类,车拥有相同的属性(颜色,大小,重量)和行为(行驶);又如动物也是一个类,动物拥有相同的属性(大小)和行为(吃,喝);我们将这些拥有相同的属性和行为的一些事物叫做一个类。
2 在程序中如何申明一个类,用关键字 class 例
class Person{ // 属性; // 行为; }
在这里我们申明了一个人类
二 ,对象的基本概念
1 什么是对象? 对象即是一个具体的事物,也或者是一个抽象的事物,对象时从类实例化而来。例: 上面我们说车是一个类,那么宝马,奔驰等就是对象,总结一句,对象就是将类具体化了。
2 对象的两个部分
(1)对象的组成元素,是对象的数据模型,用于描述对象的数据,又别称为属性;
(2)对象的行为,对象的行为模型,用于描述对象具体能做什么事情,又被称为方法;
3 对象的两个特征
(1)高内聚, 即在对象的内部属性和方法对内是可见,在对象的内部属性和方法都是可以被修改和访问的;
(2)低耦合 , 在对象的外部,我们只能看见一部分的方法和属性;涉及到访问控制,后文在述。
4 如何实例化一个对象,用关键字 new 上面我们申明了一个人类,现在我们将这个人类 实例化。
实例化一个张三的对象
$zhangsan = new Person();
三 , 访问控制 :主要用修饰符public protected private 来控制访问的权限; 例
class Person{ public $name; //公有的,可以被任何访问 protected $sex; // 受保护的,可以被自身和子类访问 private $age; // 私有的,只能被自己访问 }
四, 构造函数,和析构函数
1 构造函数 ,构造函数为类中的一个方法,当我们实例化这个类的时候 自动调用,构造函数的目的是为了完成一些初始化的工作。用__construct 例
class Person{ public $name; //公有的,可以被任何访问 protected $sex; // 受保护的,可以被自身和子类访问 private $age; // 私有的,只能被自己访问 //当我们new这个类时 自动调用 public function __construct(){ echo "你好"; } }
2 析构函数 ,当对象被销毁的时候自动调用,我们常用析构函数来销毁变量,以达到释放内存的 目的。 用 __desturct 写法同上。
五, 魔术方法,原理和构造函数差不多,在特定的情况下自动调用。
六,接口
1 什么是接口? 接口提供了一组实现接口的类 必须实现的方法组合 ,接口里面的方法没有方法体(具体的执行代码)接口里面的方法都是抽象方法。
2 如何声明一个接口 例:
interface Inter { public function eat(); //没有具体的方法体 public function run(); }
3 当一个类去实现一个接口的时候 必须实现接口里面的方法,除非这个类时抽象类 例
// 申明一个接口 interface Inter { public funtion eat(); public funtion run(); } //一个类去实现接口 class Person implements Inter{ //这个类必须去实现接口中的方法 public function eat(){ //具体的方法 } public function run (){ //具体的方法 } }
4 接口可以被继承,用关键字extends 写法 interface inter1 extends Inter { } inter1接口继承了Inter接口,接口的继承可以是一对多,即一个接口可以继承多个父接口。注意:当一个类去实现了一个子接口的时候,它也必须实现父接口里面的抽象方法。
七 ,多态
1 多态是一种现象,当一个类被多个子类所继承,如果这个类中的方法在子类中表现出了不同的功能,我们称这种现象为多态;
八 ,封装
1 封装 通过访问修饰符 将类中不需要外部访问的属性和方法进行私有化处理,实现访问控制,让使用者只能通过我们提供的方法对属性和方法进行访问。
2 封装的好处,可以重复调用避免了代码的冗余。
九 ,继承 类可以被继承,子类拥有父类的属性和方法,子类可以修改父类的成员,我们称之为重写,当子类 重写父类的方法后,按照子类的方法运行 通过关键字extends 实现继承
例子
//声明一个类 class Person{ $name; public function say(){ echo $this->name."今天天气不错哦"//$this php中的伪变量,代表自身对象我们在类内部访问属性时一般用$this } } //继承一个类 class Man extends Person{ //将父类的say方法重写 public function say(){ echo "晚饭吃什么?" }
}
十, 关键字 final 和static
1 final php5中引入关键字final 当用final 修饰类的时候这个类可以理解为最终类,这个类不能被继承;当用final修饰方法时,这个方法可以就理解为最终方法,不能够被重写。
2 static 静态成员 //用static 修饰的属性和方法被称为静态属性和静态方法
(1)静态属性保存了公有的数据;
(2)静态方法只能访问静态属性;
(3)静态成员不要要实例化就可以访问,
(4)静态方法不能够去调用非静态成员,然而非静态方法则可以调用静态成员,因为静态成员在加载的时候已经产生,而非静态成员此时没有实例化诞生。
(5)如何访问? 在类内部访问 用 self 或者static访问 格式 : self/static::$属性名 ; parent::$属性名访问父类属性 在类外部调用 : 类名::$属性。
结束语 :以上是关于面向对象编程的一些基本概念,以后闲的时候在弄些其他东西,话说这是在下的第一篇博客,
2018-09-02 21:39:26
标签:通过 const 魔术 耦合 load lstat 结束 返回 vat
原文地址:https://www.cnblogs.com/jia1001/p/9575486.html