【PHP7 面向对象 笔记一】面向对象的相关概念
程序员文章站
2022-04-06 20:55:42
...
一、什么是类?
把具有相似特征和行为的对象归为一类,类定义了相似对象拥有的相同属性及方法,类是模板或者说是原型,通过类这个模板及属性的变换才会有不同的对象,也是通过属性行为确定一类。
对象-是类的实例。
类的对象称为类的一个实例,例如:明星这个类,然后才有刘亦菲,赵薇这些明星,在编程当中是先有类,然后才有对象的。
二、什么是对象?
世间万物皆对象:我、你、张三、苹果、电脑等。
对象是指具备某种功能属性的实体,一切可见之物都是对象。一切不可见之物(抽象事物)也是对象。
三、类的三大特征
1) 封装
找到变化并且把它封装起来,你就可以在不影响其它部分的情况下修改或扩展被封装的变化部分,这是所有设计模式的基础,就是封装变化,因此封装的作用,就解决了程序的可扩展性。
2) 继承
子类继承父类,可以继承父类的方法及属性,实现了多态以及代码的重用,因此也解决了系统的重用性和扩展性。但是继承破坏了封装,因为他是对子类开放的,修改父类会导致所有子类的改变,因此继承一定程度上又破坏了系统的可扩展性,所以继承需要慎用。
3) 多态
接口的多种不同的时下方式即为多态。接口是对行为的抽象。
四、对象的特征
对象包含两个部分
1) 对象的组成元素
也就是对象的属性,或者成员变量,也就是对象的一些特征,比如大象的特征蓝颜色、名字叫做PHP的大象,就是该事物的描述信息。
2) 对象的行为
用于描述对象能做什么,又被称之为方法,比如大象能够用鼻子甩水,刘亦菲会演戏,这些都是行为。
五、类与对象的区别与联系
1) 类是抽象的,概念的,代表一类事物,比如人类,猫类…;
2) 对象是具体的,实际的,代表一个具体事物;
3) 类是对象的模板,对象是类的一个个体实例。
六、类的声明
1) 基本语法
class 类名
{
public 成员变量
public function 成员方法()
{
}
}
类的定义:以 class
开始,后面跟着类名,以中括号开始及结束。
2) 举例
/*
* class Animal 文件名与类名一致
*/
class Animal
{
public $name; // 类中的变量称为属性(成员变量)
public $length;
/*
* 类中的函数称为方法
* 函数需要返回值,return 后面代码不会再执行
*/
public function eat()
{
return '大象吃草';
}
public function run()
{
echo '奔跑';
}
}
七、类的实例化
通过类这个模板来创建一个对象。
-通过明星这个类创建一个刘亦菲或者范冰冰、李冰冰
八、创建对象
1) 基本语法
$对象名 = new 类名();
$对象名 = new 类名;
2) 对象-如何访问(使用)对象的属性?
$对象名->属性名;
->
称为 对象运算符
3) 举例1:实例化上面的类
$elephant = new Animal();
var_dump($elephant->eat());
echo '<br>';
var_dump($elephant->run());
完整代码如下:
class Animal{
public $name;
public $length;
public function eat()
{
return '大象吃草';
}
public function run()
{
echo '奔跑';
}
}
// 实例化
$elephant = new Animal();
var_dump($elephant->eat());
echo '<hr>';
var_dump($elephant->run());
运行结果:
注:不要在方法的内部用输出(var_dump或者echo),否则返回值会为null。
4) 举例2:动态的改变变量的值
class Animal{
public $name;
public $length;
public function eat($name, $action)
{
return $name .'吃'. $action;
}
}
$elephant = new Animal();
var_dump($elephant->eat('老虎', '肉'));
echo '<hr>';
var_dump($elephant->eat('大象', '草'));
运行结果: