Blogger Information
Blog 70
fans 4
comment 5
visits 103801
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP:OOP基础/类(对象抽象化的结果)与对象 (类实例化结果)/构造方法/对象成员之间的内部访问/类的自动加载/静态成员的访问 类的引用/类的继承 扩展 父类方法
JiaJieChen
Original
980 people have browsed it

OOP基础/类(对象抽象化的结果)与对象 (类实例化结果)/构造方法/对象成员之间的内部访问/类的自动加载/静态成员的访问 类的引用/类的继承 扩展 父类方法

一. 类(对象抽象化的结果)与对象 (类实例化结果)

属性 含义
class 类声明
new 类实例化
public 公开成员,随处可见
protected 受保护成员,仅在当前类或子类中可见
private 私有成员, 仅在当前类可见
spl_autoload_register() 自动加载器
extends 类的扩展
static 声明类的静态成员
$this 实例引用
self 类的引用
trait 类功能横向扩展
__construct 构造器 1.对对象的公共属性进行初始化赋值 2. 记录当前类被实例化的次数

对象

类的概念

物以类聚,把具有相似特性的对象对垒到一个类中,类定义了这些相似对象拥有的相同的属性和方法
类是相似对象的描述,成为类的定义,是该类对象的蓝图或者原型
类的对象称为一个类的实例(Instance)
类的属性和方法统称为类成员

类的实例化

类的实例化:通过类定义创建一个类的对象
类的定义属性值都是空或默认值,而对象的属性都有具体的值

类的定义

类的定义以关键字class开始,后面跟着这个类的名称。类的命名通常每个单词的第一个字母大写,以中括号开始和结束
类的实例化为对象时使用关键字new,new之后紧跟类的名称和一对圆括号
对象中得成员属性和方法可以通过->符号来访问


①类的声明/类的实例化结果

public 公开成员,实例对象 用 new 关键字 + 类名称,在创建好实例对象后,可以用用->访问里面的公共成员或者方法

访问里面的公共成员或者方法$ZhanShuai -> name = "张帅";$ZhanShuai -> height = "170cm";$ZhanShuai -> weight = "55kg";$ZhanShuai -> age = "男";$ZhanShuai -> gender = "23";echo "姓名:" .$ZhanShuai -> name ."
";;echo "身高:" .$ZhanShuai -> height."
"; ;echo "体重:".$ZhanShuai -> weight."
"; ;echo "性别: " .$ZhanShuai -> age."
"; ;echo "年龄: " .$ZhanShuai -> gender ."岁"."
";

二. 构造方法

  • __construct 构造器 1.对对象的公共属性进行初始化赋值 2. 记录当前类被实例化的次数

    有构造方法时, 类的实例化必须给构造方法传值,否则会报错

给构造方法传递参数,并且访问类里面成员实例方法

name = $name; $this->height = $height; $this->weight = $weight; $this->age = $age; $this->gender = $gender; } //成员实例方法 public function movements(){ if ($this->height > 175 && $this->weight < 100) { return "$this->name 适合成为运动员"; }else { return "$this->name 不适合成为运动员"; } }}//有构造方法时, 类的实例化必须给构造方法传值//实例对象 用 new 关键字 + 类名称// $zql = new moveMent2;$zql = new moveMent2("张起灵","180","60kg","男","23");$panzi = new movement2("胖子","170","80kg","男","23");//调用类方法echo $zql->movements() ."
";echo $panzi->movements() ;

三.对象成员之间的内部访问 $this

  • 特殊的对象引用$this :代表本对象 , 完成对象内部成员的访问,类似指针

//__construct 构造器 1.对对象的公共属性进行初始化赋值 2. 记录当前类被实例化的次数 public function __construct($name,$height,$weight,$age,$gender) { //特殊的对象引用$this :代表本对象 , 完成对象内部成员的访问 //使用$this访问类成员初始化赋值 $this->name = $name; $this->height = $height; $this->weight = $weight; $this->age = $age; $this->gender = $gender; } //成员实例方法 public function movements(){ if ($this->height > 175 && $this->weight < 100) { return "$this->name 适合成为运动员"; }else { return "$this->name 不适合成为运动员"; } }

四.private仅限本类中使用 protected本类中,子类中使用

  • protected本类中,子类中使用

    访问受保护的成员会进行报错,protected只能在本类中,子类中使用 Fatal error: Uncaught Error: Cannot access protected property moveMent3::$height in

  • private仅限本类中使用

    访问私有成员private也会进行报错,因为私有成员仅限于本类中使用
    Fatal error: Uncaught Error: Cannot access private property moveMent3::$weight in

  • 如何给私有成员赋值 1. 通过构造函数 2. 通过魔术方法 __Set() to be continued….

//__construct 构造器 public function __construct($height,$weightr) { //特殊的对象引用$this :代表本对象 , 完成对象内部成员的访问 //使用$this访问类成员初始化赋值 $this->height = $height; $this->weight = $weight; } //成员实例方法 public function Show(){ echo "我的体重是:$this->weight"."
"; echo "我的身高是:$this->height"."
"; } $getName = new moveMent3("靓仔","175","55Kg","男","21"); echo $getName->Show();

五.类的自动加载 spl_autoload_register /静态成员的访问

①类的自动加载 spl_autoload_register

Show();

②静态成员的访问

  • static 关键字:标志静态成员(方法,属性), 静态成员只能由类来调用, 为所有对象共享

  • self:: 静态成员与类的实例无关 不能用$this来访问 用self:: 类的引用 访问 静态成员


      

七.类的继承 扩展 父类方法(魔术方法,普通方法)的重写 parent:: 调用父类成员

父类

clothes = $clothes; $this->price = $price; } //公共成员方法 public function Show(){ return $this->clothes."是".$this->price."元"; }}

子类

num = $num; } //重写父类普通方法 public function Show() { return parent::Show().",库存还有:".$this->num."
"; } //拓展普通方法 public function Sum() { return "剩余库存金额一共:".($this->price * $this->num)."元"."
"; }}

服务端

//引入文件require "1-splauto.php";//LiLing 实例化子类$LiLing = new SumItems("lining男衣",198,2000);//调用对象LiLing 子类方法 echo $LiLing->Show();echo $LiLing->Sum();

本单元小结
类(对象抽象化的结果)与对象 (类实例化结果)
构造方法__construct()
对象成员之间的内部访问$this
private仅限本类中使用protected本类中,子类中使用
类的自动加载spl_autoload_register(function())
静态成员的访问 类的引用self::
类的继承extends扩展 父类方法(魔术方法,普通方法)的重写parent::调用父类成员
Correcting teacher:灭绝师太灭绝师太

Correction status:qualified

Teacher's comments:看来很喜欢盗墓笔记了, btw, 杨洋演技怎么样
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply withNews Comment Service Agreement
0 comments
Author's latest blog post
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!