php面向对象 - 定义一个类
1、定义类
在 PHP 中,可以使用 class 关键字加类名的方式定义一个类,然后用大括号{ }
将在类体中定义类的属性和方法包裹起来,类的语法格式如下:
[修饰类的关键字] class 类名{类的属性和方法;
}
类名和变量名还有函数名的命名规则相似,都需要遵循 PHP 中的自定义命名规则,可以是任何非 PHP 保留字的合法标签。一个合法类名以字母或下划线开头,后面跟着若干字母,数字或下划线。如果类名由多个单词组成,习惯上将每个单词的首字母大写。另外,类名最好具有一定的意义,不要随便由几个字母组成。
修饰类的关键字是一个可选参数,可以省略。我们通常使用下面这些关键字来修饰类:
- abstract:抽象类或方法,被修饰为抽象类之后,类将不能被实例化,但可以被继承。如果类中有至少一个方法被声明为抽象的,那么这个类也必须声明为抽象的。继承一个抽象类的时候,子类必须重新定义父类中的所有抽象方法,而且这些方法的访问控制必须和父类中一样。
- final:使用 final 修饰的类不能被继承,而使用 final 修饰的方法不能在子类中重新定义。
注意:一个类可以包含有属于自己的常量、变量(在类中称为“成员属性”或者“属性”)以及函数(在类中称为“成员方法”或者“方法”)。
2、成员属性
在类中直接声明的变量称为成员属性(也可以称为成员变量),可以在类中声明多个变量,即对象中可以有多个成员属性,每个变量都存储对象不同的属性信息。语法格式如下:
访问权限修饰符 属性名称 = 属性值;
成员属性的类型可以是 PHP 中的标量类型和复合类型,所以也可以是其他类实例化的对象,但在类中使用资源和空类型是没有意义的。
前面我们绍过,声明变量时不需要任何关键字修饰,但是在类中声明成员属性时,变量前面一定要使用一个关键字来修饰,例如 public、private,static 等,但这些关键字修饰的变量都具有一定的意义。如果不需要有特定意义的修饰,可以使用“var”关键字,一旦成员属性有其他的关键字修饰就需要去掉“var”。
常用访问权限修饰符及其含义如下所示:
- public:公共的,在类的内部、子类中或者类的外部都可以使用,不受限制;
- protected:受保护的,在类的内部和子类中可以使用,但不能在类的外部使用;
- private:私有的,只能在类的内部使用,在类的外部或子类中都无法使用。
注意:一个类,即一对大括号之间的全部内容都要在一段代码中,也就是一个<?php ... ?>
之间,不能分割成多块。
【示例】创建一个 Students 类并在类中声明一些成员属性,代码如下所示:
- <?php
- class Students{
- var $name;
- public $age;
- private $sex;
- public static $school;
- }
- ?>
提示:权限修饰符可以和定义静态变量的关键字 static 混合在一起使用,如上面代码中所示。
3、成员方法
在类中定义的函数被称为成员方法。函数和成员方法唯一的区别就是,函数实现的是某个独立的功能,而成员方法是实现类中的一个行为,是类的一部分。
可以在类中声明多个成员方法,成员方法的声明和函数的声明完全一样,只不过在声明成员方法时可以在function
关键字的前面加一些访问权限修饰符来控制访问权限,例如 public、private、protected 等。
另外需要注意的是,声明的成员方法必须和类是相关的,不能是一些没有意义的操作。例如,在声明学生类时,如果声明了“飞行”的成员方法,实例化出来的每个学生都可以飞了,这样就是一个设计上的错误。
【示例】在上面示例中创建的 Students 类中创建一些成员方法。
- <?php
- class Students{
- var $name;
- public $age;
- private $sex;
- public static $school;
- public function Write(){
- }
- protected static function Read(){
- }
- function Listen(){
- }
- }
- ?>
成员方法前面的权限修饰符可以省略,省略后默认权限为 public。在类中成员属性和成员方法的声明都是可选的,可以同时存在,也可以单独存在,具体可以根据实际情况而定。
在 PHP7 中,引入了类型声明,我们可以为成员方法的形参和返回值声明类型,格式如下所示:
[权限修饰符] function 方法名 (类型 参数1, 类型 参数2, ..., 类型 参数n) : 返回值类型 {
... ...
}
PHP7 中支持声明的参数类型包括整型、浮点型、字符串型和布尔类型。示例代码如下所示:
纯文本复制
- <?php
- class Students{
- var $name;
- public $age;
- private $sex;
- public static $school;
- public function Write(string $a, int $b):bool{
- }
- protected static function Read(string $str):int{
- }
- function Listen(int $num):bool{
- }
- }
- ?>
php面向对象 - 定义一个类相关推荐
- Java创建一个文件变量_java如何定义一个类,创建它的成员变量和方法?
展开全部 类即对象的思想,一个对象包含e68a843231313335323631343130323136353331333337623439了属于自己的成员变量和操作方法. 如何定义一个类,得看你对 ...
- java设计一个bank类实现银行_java定义一个类实现银行账户的概念。
2016-11-17 13:40黄瞩信 客户经理 比如,只定义了一个抽象方法run(),而要通过系统用极短的时间.这5s内,此后这个线程就不能进入其它状态,进入消亡状态;+i++). 2,另一方面;, ...
- java定义一个类_Java类的定义格式:Java如何定义一个类
在面向对象的思想中,最核心的就是对象.为了在程序中创建对象,首先需要定义一个类.类是对象的抽象,它用于描述一组对象的共同特征和行为,例如人都有姓名.年龄.性别等特征,还有学习.工作.购物等行为.以面向 ...
- 重温Delphi之:如何定义一个类
先谈谈工具问题: 虽然d7很经典,但毕竟是02年出的开发工具了,对于习惯了vs2008被微软宠坏的.net程序员来讲,重返d7已经有点找不着感觉了(起码连最基本的代码折叠功能都没有),还好delphi ...
- java定义一个类计算圆的半径,C++编程:定义一个圆类要求属性为半径,操作为计算圆的周长和面积...,java编程:定义一个圆类,属性为半径,方法为对输入的半径计...
导航:网站首页 > C++编程:定义一个圆类要求属性为半径,操作为计算圆的周长和面积...,java编程:定义一个圆类,属性为半径,方法为对输入的半径计 C++编程:定义一个圆类要求属性为半径, ...
- java定义一个类_java如何定义一个类,创建它的成员变量和方法?
展开全部 类即对象的思想,一个对象包含e69da5e887aa3231313335323631343130323136353331333337623439了属于自己的成员变量和操作方法. 如何定义一个 ...
- 定义一个类:实现功能可以返回随机的10个数字,随机的10个字母, 随机的10个字母和数字的组合;字母和数字的范围可以指定,类似(1~100)(A~z)...
#习题2:定义一个类:实现功能可以返回随机的10个数字,随机的10个字母, #随机的10个字母和数字的组合:字母和数字的范围可以指定class RandomString():#随机数选择的范围作为参数 ...
- jsp 定义java类_在JSP中定义一个类
请不要打我脸!我知道面对好的设计这是行得通的,但是我只是写一个测试页来演示一些东西.我们的webapp模块(正确)不能直接访问我们的域类.我不想在JSP之外创建整个类,因为该页面仅用于演示目的,出于相 ...
- python中定义类的关键字_在Python中,定义一个类使用什么关键字?
[多选题]技术应用的限制包括 [多选题]关于类和对象,下面说法正确的有? [判断题]温度越高,料液的粘度越小,扩散系数越大,可提高膜通量. [单选题]某企业有10台运货车,已知每台车每运行100小时平 ...
最新文章
- 构造函数,对象原型,实例对象三者之间的关系
- Service Fabric 与Ocelot 的集成
- 工作312:uni-时间戳处理
- hive元数据库表分析及操作
- 我是怎么定义微服务平台?
- ubuntu软件中心打不开Python error
- js鼠标禁止右键、复制粘贴代码
- Java 问答:终极父类(第一部分)
- Arduino控制微小的六足3D打印机器人
- 2个方法解决PDF转成WORD
- JRebel激活教程
- java.lang.IllegalStateException: Only fullscreen activities can request orientation
- html表格中加入斜线,Html Table 表格 画斜线
- Python运算(四)random模块secrets模块
- layui 借助 parseData 回调函数解析table 组件所规定的数据格式
- sqlserver 登录名与数据库用户
- 莫凡Python学习笔记 一
- python元素定位8大方法
- PlantUML Themes
- bat脚本获目录下下的文件名称:dir tree