php面向对象程序设计
作者:Lambert-XG 发布时间:2023-05-29 15:55:45
类:定义一件事物的抽象特点。
对象:类的 实例。
成员变量 − 定义在类内部的变量。该变量的值对外是不可见的,但是可以通过成员函数访问,在类被实例化为对象后,该变量即可称为对象的属性。var关键字定义成员变量。
多态:相同的函数或方法可作用于多种类型对象产生不同结果。
封装:现实世界中存在的某个客体的属性和行为绑定在一起,并放置在一个逻辑单元中。
构造函数:创建对象是初始化对象,为对象成员变量赋初始值,与new运算符一起使用在创建对象的语句中。
定义类:
<?php
class site(){
/* 成员变量 */
var $url;
var $title;
/* 成员函数 */
function setUrl($par){
$this->url = $par;
}
function getUrl(){
echo $this->url . PHP_EOL;
}
}
?>
类的变量使用 var 来声明, 变量也可以初始化值。
函数定义类似 PHP 函数的定义,但函数只能通过该类及其实例化的对象访问。
变量 $this 代表自身的对象。
创建对象:
$baidu = new site;
$taobao = new site;
调用成员方法:
$baidu->setUrl('www.baidu.com');
$baidu->getUrl();
构造方法:
function __construct($baidu){
$this->url = $baidu;
}
现在可以这样实例化对象:
$baidu = new site('www.baidu.com');
//调用成员函数
$baidu->getUrl()
方法重写:
// 从父类继承的方法不能满足子类时,可以对方法进行重写覆盖(override)
function getUrl() {
echo $this->url . PHP_EOL;
return $this->url;
}
访问控制:
public 公有公有的类成员可以在任何地方被访问。protected 受保护受保护的类成员则可以被其自身以及其子类和父类访问。private 私有私有的类成员则只能被其定义所在的类访问。(继承类也不能访问)
static关键字:
声明方法或类属性为static,可以不实例化而直接访问。静态属性不能通过一个类已实例化的对象来访问(但静态方法可以)。
Final关键字:
如果父类中的方法被声明final,则子类不能覆盖该方法(重写);如果类被声明final则该类不能被继承。
调用父类的构造方法:
PHP 不会在子类的构造方法中自动的调用父类的构造方法。要执行父类的构造方法,需要在子类的构造方法中调用 parent::__construct() 。
<?php
class base{
function __construct(){
print "base类构造方法".PHP_EOL;
}
}
class sub extends base{
function __construct()
{
parent::__construct();// 子类不能自动继承父类构造方法
print "子类sub的构造方法".PHP_EOL;
}
}
// 调用base构造方法
$obj1 = new base();
// 调用base、sub构造方法
$obj2 = new sub();
?>
来源:https://blog.csdn.net/weixin_42124384/article/details/127878441


猜你喜欢
- 相同点:可以利用中括号获取元素 s[0]可以的得到单个元素 或 一个元素切片 s[3,7]可以遍历 for x in s可以调用同样的函数获
- 1. 模型1.1. 模型定义type User struct { gorm.Model
- 时至期末,补习信息安全概论作业。恰巧遇古典密码学算法中的playfair算法和hill算法,用javascript语言实现起来是在有趣,边查
- 1.导入依赖包import ( "github.com/spf13/viper")2.编写ya
- 安装MySQL,留作笔记,不知是否能够安装成功,试试吧。1、 进入mysql官网 地址<下载完毕,接下来就是安装了2、安装找到安装包,
- 1. 腐蚀 & 膨胀1.1什么是腐蚀&膨胀腐蚀&膨胀是图像形态学中的两种核心操作腐蚀可以描述为是让图像沿着自己的边界
- 切片原型 strs = ‘abcdefg'Strs[start: end:step]切片的三个参数分别表开始,结束,步长第一位下标为
- 本文实例讲述了golang的HTTP基本认证机制。分享给大家供大家参考,具体如下:看了<<http权威指南>>第12
- 一、前言最近本都是开开心心的打开电脑写一些祖传BUG但一个报错阻碍了我写BUG的进度!这年代还有能阻碍我写BUG的报错???二、解决过程一个
- 前言诶?这有一个按钮(~ ̄▽ ̄)~,这是一个在html中实现的具有金属质感并且能镜面反射的按钮~效果电脑效果手机效果说明主要思路是使用 na
- run() 方法并不启动一个新线程,就是在主线程中调用了一个普通函数而已。start() 方法是启动一个子线程,线程名就是自己定义的name
- python将ansible配置转为json格式实例代码ansible的配置文件举例如下,这种配置文件不利于在前端的展现,因此,我们用一段简
- 1.现在我本机系统已内置python2.62.下载进行源码安装复制链接下载到/root/mypackage,解压接着mkdir /usr/l
- 今天发现了一个显示ORACLE语法的好网站。内容太多,就不一一摘录了,记在这里,也方便自己查找。http://ss64.com/ora/ 目
- 实例如下所示:>>> import pandas as pd>>> df = pd.DataFrame(
- 方法一: select `name` from mysql.proc where db = 'your_db_name' a
- 一、循环语句介绍 1.循环语句理解循环语句允许我们执行一个语句或语句组多次,可以让我们的代码重复的去执行。2.循环语句示意图二、循
- 目录1. 加载保存好的模型2. 使用flask起服务3. 发送请求并得到结果4. 效果呈现1. 加载保存好的模型为了方便起见,这里我们就使用
- 在access中进行时间的比较sql语句很简单,如select * from table where thetime>#\"
- zip()的作用先看一下语法:zip(iter1 [,iter2 [...]]) —> zip objectPython的内置help