写点什么

【web 开发基础】PHP8 中类的基本操作(57)

作者:迷彩
  • 2022-12-31
    广东
  • 本文字数:1424 字

    阅读完需:约 5 分钟

前言

类是面向对象中最为重要的概念之一,是面向对象设计中最基本的组成模块。可以将类简单地看作一种数据结构,在类中的数据和函数称为类的成员。


类的声明

在 PHP 中,声明类的关键字是 class,声明格式如下:

<?php  权限修饰符  class类名{  类的内容;}?>
复制代码

其中,权限修饰符是可选项,常见的修饰符包括 public、private 和 protected。创建类时,可以省略权限修饰符,此时默认的修饰符为 public。public、private 和 protected 的区别如下:

  1. 一般情况下,属性和方法的默认项是 public,这意味着属性和方法的各个项从类的内部和外部都可以访问。

  2. 用关键字 private 声明的属性和方法则只能从类的内部访问,也就是只有类内部的方法才可以访问用此关键字声明的类的属性和方法。

  3. 用关键字 protected 声明的属性和方法也是只能从类的内部访问,但是通过“继承”而产生的“子类”也是可以访问这些属性和方法的。

例如,定义一个 Student(学生)为公共类,代码如下:

<?phppublic class Student{
//类的内容:成员属性,成员方法
}
复制代码

成员属性

成员属性是指在类中声明的变量。在类中可以声明多个变量,所以对象中可以存在多个成员属性,每个变量将存储不同的对象属性信息,例如:

<?phppublic class Student{    public $name;//类的成员属性}
复制代码

其中,成员属性必须使用关键词进行修饰,常见的关键词包括 public、protected 和 private。如果没有特定的意义,仍然需要用 var 关键词修饰。另外,在声明成员属性时可以不进行赋值操作。

成员方法

成员方法是指在类中声明的函数。在类中可以声明多个函数,所以对象中可以存在多个成员方法。类的成员方法可以通过关键字进行修饰,从而控制成员方法的使用权限。

以下是定义成员方法的例子:

<?phppublic class Student{    public $name;//类的成员属性    function getName(){    	//...    }}
复制代码

类的实例化

面向对象编程的思想是一切皆为对象。类是对一个事物抽象出来的结果,因此,类是抽象的。对象是某类事物中具体的那个,因此,对象就是具体的。例如,学生就是一个抽象概念,即学生类,但是姓名叫张三的学生就是学生类中一个具体的学生,即对象。

类和对象的关系可以描述为:类用来描述具有相同数据结构和特征的“一组对象”,“类”是“对象”的抽象,而“对象”是“类”的具体实例,即一个类中的对象具有相同的“型”,但其中每个对象却具有各不相同的“值”。

注:类是具有相同或相仿结构、操作和约束规则的对象组成的集合,而对象是某一类的具体化实例,每一个类都是具有某些共同性的对象的抽象。


类的实例化语法格式如下:

$变量名=new类名称([参数]); //类的实例化

其中,new 为创建对象的关键字,$变量名返回对象的名称,用于引用类中的方法。参数是可选的,如果存在参数,就用于指定类的构造方法或用于初始化对象的值;如果没有定义构造函数参数,PHP 就会自动创建一个不带参数的默认构造函数。如下面的代码:

<?phppublic class Student{    public $name;//类的成员属性    function getName(){    	//...    }}
$zhangsan = new Student(); //类的实例化 默认有一个空参的构造方法$lisi = new Student(); //类的实例化 默认有一个空参的构造方法$wangwu = new Student(); //类的实例化 默认有一个空参的构造方法$zhaoliu = new Student(); //类的实例化 默认有一个空参的构造方法
复制代码

上面的例子实例化了 4 个对象,并且这 4 个对象之间没有任何联系,只能说明它们源于同一个类。可见,一个类可以实例化多个对象,每个对象都是独立存在的。

发布于: 2022-12-31阅读数: 46
用户头像

迷彩

关注

我的工作是常年写bug|公众号:编程架构之美 2020-06-18 加入

修bug的菜鸟~公众号:“互联网有啥事”已改名为“编程架构之美”

评论

发布
暂无评论
【web 开发基础】PHP8 中类的基本操作(57)_面向对象_迷彩_InfoQ写作社区