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
猜你喜欢
- PHP观察者模式(Observer Pattern)观察者模式是一种行为设计模式,它定义了一种订阅机制,让一个或多个对象(观察者)自动被通知
- 说明:本函数作用是截取指定英汉混合字符串,并保持显示长度一至。就是将一个汉字当两英文来截取。用途:一般会用在标题显示列表,可以避免截取的字符
- 昨天,系统管理员告诉我,我们一个内部应用数据库所在的磁盘空间不足了。我注意到数据库事件日志文件XXX_Data.ldf文件已经增长到了3GB
- 网站的改版和重新设计总是一件让人激动的事情,上到老板,下到设计师。更漂亮!更强大!更人性化……参与设计者一定有着无数为新版本骄傲的理由,然后
- Web Accessibility Initiative Accessible Rich Internet Applications认识AR
- 如何 在Access中选择指定日期前的记录?我知道,在Access中不能使用DateDiff,那么我们怎样才能选择指定日期前的若干记录呢?虽
- 一.基本的查询语句,特殊符号||。制定列的别名AS,唯一标示distinct1.字符连接符“||”与“+”符oracle:select &n
- 先由exp把数据卸出到文件系统, 产生一个.dmp文件, 然后必要时再由imp将数据装入数据库. 对于一般中小型数据库来说, 全数据库的ex
- 在许多情况下,当迁移至SQL Server 2008之前必须了解那些反对和放弃功能的具体情况。下文是几个主要功能在兼容性上的问题列表:1.S
- 阅读上一篇:一个完美网站的101项指标.第三部分.易用性 设计体现了一个网站的艺术素养,然而并不是说您应当过分设计,设计风格应结合您的行业,
- QueryCache(下面简称QC)是根据SQL语句来cache的。一个SQL查询如果以select开头,那么MySQL服务器将尝试对其使
- 硬件平台:SUN Ultra Enterprise 3000 操作系统:Solaris 2.5(中文简体) 磁盘:4.2GB 内存:256M
- oracle10g数据备份 1.用sql/plus developer,选中要备份的数据表,右击选择"Export data&qu
- 工作中遇到一个很棘手的问题,交互设计师和视觉设计师在做出高保真原型后提交给前端开发工程师,最后得到的web产物从细节上和布局上都和高保真原型
- 一个不错的绿色下划线的简洁CSS导航代码,纯css不用图片,效果图如下:<html> <head> <meta
- 先来说eval的用法,内容比较简单,熟悉的可以跳过。eval函数接收一个参数s,如果s不是字符串,则直接返回s。否则执行s语句。如果s语句执
- 一、PL/SQL出现的目的 结构化查询语言(Structured Query Language,简称SQL)是用来访问关系型数据库一种通用语
- 我很想自己写一个这样的程序,不过wordpress是php的,我blog是ASP的,只好用ASP写代码了。经过一番折腾测试,终于让我的梦想变
- 为满足用户的视觉追求及产品的背景图片的换肤功能,设计师难免在设计上会用到半透明的效果。因此页面重构师基于视觉及产品的需要,采用了PNG32的
- 随着互联网的飞速发展,很多主页都是越做越漂亮、越来越有个性。如果你是一个资深的网虫不会没有自己的主页吧!下面小弟就来谈谈如何使你的网上“小窝