PHP OOP

类跟对象的关系
类是对象的抽象(对象的描述(属性),对象的行为(方法))
对象是类的实体
面相对象的三大特征:封装、集成、多态
自定义类
Class Person{
}
属性定义
属性是类里面的成员,所以要定义属性的前提条件是需要声明一个类
Class Person{
public $name;// 属性
public $age;
public $sex;
}
方法定义
方法是定义特定功能的代码块,在类中定义方法表示,创建对象之后,对象的特定行为;
Class Person{
public function eat($food){
echo "Person can eat ".$food;
}
}
实例化对象
Class Person{
public $name;// 属性
public $age;
public $sex;
public function eat($food){
echo "Person can eat ".$food;
}
}
$person1=new Person();
属性的赋值
$person1->name="curtis";
echo $person1->name;
类方法的调用
$person1->eat("Apple");
继承(PHP是单继承,也就是一个子类只能有一个父类)
为什么要继承?
回复:为了属性、方法的重复利用;
业务场景:
有个Person类,有一个Student类;
Person里面有姓名、年龄、性别
如果Student里面再将上面的属性定义一次,那就糟蹋了继承这个神器;
Person类叫Student类的父类,Student类是Person类的之类;
Class Person{
public $name;// 属性
public $age;
public $sex;
public function eat($food){
echo "can eat ".$food;
}
}
Class Student extends Person{
public $student_id;
public function write(){
echo "I can write";
}
public function read(){
echo "I can read";
}
}
$student1=new Student();
$student1->name="curtis1";
echo $student1->name;
echo "<br />";
$student1->eat("面");
echo "<br />";
访问修饰符
public protected private
public 当前类,子类中均可访问;
protected 当前类,子类内部允许访问;
private 当前类内部允许访问;
这个地方需要重点了解:
范围
什么叫类内部?
{}内叫类内部,出了{},实例化对象的时候构造函数也是内内部;
Class Person{
public $name;// 属性
public $age;
private $sex;// 私有属性
public function eat($food){
echo "eat ".$food;
}
function __construct($sex){
echo "性别:".$sex;
}
}
Class Student extends Person{
public $student_id;
public function write(){
echo "I can write";
}
public function read(){
echo "I can read";
}
}
$person1=new Person("男");
static 关键字
为什么要有这么一个关键字?
常量
PI
静态属性 public static $PI = 3.14;
静态方法 
静态成员访问方式(类外部):
类名::属性名称
在当前类中访问静态属性:
statis::属性名;
在子类内部访问父类静态成员,parent::属性名;statis::属性名;
class Person
{
public $name;
// 属性
public $age;
private $sex;
// 私有属性
public function eat($food)
{
echo "eat " . $food;
}
public static $PI = 3.14;
/**
* 构造函数
*/
function __construct($sex)
{
echo "性别:" . $sex;
}
function show(){
echo static::$PI;
}
}
class Student extends Person
{
public $student_id;
public function write()
{
echo "I can write";
}
function __construct()
{}
public function read()
{
echo "I can read";
}
public function add()
{
echo 1 + parent::$PI."<br />";
echo 2 + static::$PI;
}
}
$person1 = new Person("男");
echo "<br />";
$person1->show();
echo "<br />";
echo Person::$PI . "<br />";
$student1 = new Student();
echo Student::$PI;
echo "<br />";
$student1->add();
方法的重写
方法的重载
什么叫相同的方法,什么叫不同的方法?
回复:相同的方法:方法名称相同,方法的参数列表相同;
不同的方法:方法名称不同;方法名称相同,方法的参数列表不同;
为什么会有方法的重写?
回复:父类定义的方法子类有同样的方法,子类的中的方法要实现有自己的行为;
方法的重载
为什么会有方法的重载?
回复:类中同样一个方法名称,通过不同的参数传递实现各自的行为;
final关键字
跟方法的重写对应来的
父类中有一个final关键字修饰的方法,子类想对该方法进行重写那是不被允许的;
接口(interface)

转载于:https://www.cnblogs.com/meroselove/p/5275318.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/458191.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

kv存储对抗关系型数据库

http://www.searchdatabase.com.cn/showcontent_52657.htm转载于:https://www.cnblogs.com/hexie/p/5276034.html

模板匹配算法

from&#xff1a;https://blog.csdn.net/zhi_neng_zhi_fu/article/details/51029864 模板匹配(Template Matching)算法 模板匹配&#xff08;Template Matching&#xff09;是图像识别中最具代表性的方法之一。它从待识别图像中提取若干特征向量与模板对应的特征向量进行比较…

关于linux用户权限的理解

创建用户useradd 用户名创建用户组groupadd 组名查看用户Idid 用户修改文件权限chmod 777 文件名或目录-R 递归修改用户数组chown 属主&#xff1a;属组 文件名或目录名-R 递归转载于:https://blog.51cto.com/1979431/1833512

IMEI串号

IMEI串号就是国际移动设备身份码&#xff0c;是电子设备的唯一身份证&#xff0c;由于它的唯一性&#xff0c;它可以用来查询电子设备的保修期还有产地&#xff0c;可以说用处直逼人民的身份证啊&#xff01; 在拨号键盘页面 输入【*#06#】五个字符转载于:https://www.cnblogs…

立体匹配十大概念综述---立体匹配算法介绍

from&#xff1a;https://blog.csdn.net/wintergeng/article/details/51049596 一、概念 立体匹配算法主要是通过建立一个能量代价函数&#xff0c;通过此能量代价函数最小化来估计像素点视差值。立体匹配算法的实质就是一个最优化求解问题&#xff0c;通过建立合理的能量函数…

zjnu1730 PIRAMIDA(字符串,模拟)

Description Sample Input 6 JANJETINA 5 1 J 1 A 6 N 6 I 5 E Sample Output 1 0 2 1 1题意&#xff1a;给你一个长度小于等于10^6的字符串&#xff0c;然后每次让它循环铺盖&#xff0c;构成层数为n的塔&#xff0c;让你求得第i层塔中某个字符的个数。 思路&#xff1a;首先要…

ICP算法理解

from&#xff1a;https://blog.csdn.net/linear_luo/article/details/52576082 1 经典ICP ICP的目的很简单&#xff0c;就是求解两堆点云之间的变换关系。怎么做呢&#xff1f;思路很自然&#xff0c;既然不知道R和t(针对刚体运动)&#xff0c;那我们就假设为未知量呗&#xf…

2016-8-2更新日志

1.修正版本管理器资源文件名 不能正确拉取 91Resource 文件下的资源的问题2.修正商城购买物品不计算负重的问题3.修正拾取叠加物品 只计算一个物品的重量的问题4.游戏参数-> 游戏选项2->增加物品使用间隔5.修正冷酷不加技能点的BUG6.自定义UI开放测试[目前只能针对热血传…

字符流缓冲区的使用之BufferedWriter和BufferedReader

从字符输入流中读取文本&#xff0c;缓冲各个字符&#xff0c;从而实现字符、数组和行的高效读取&#xff0c;代码中使用了输入缓冲区的特有的方法&#xff1a;readLine(),获取一行文本数据 import java.io.BufferedReader; import java.io.FileNotFoundException; import java…

图像处理的灰度化和二值化

from&#xff1a;http://blog.sina.com.cn/s/blog_13c6397540102wqtt.html 在图像处理中&#xff0c;用RGB三个分量&#xff08;R&#xff1a;Red&#xff0c;G&#xff1a;Green&#xff0c;B&#xff1a;Blue&#xff09;&#xff0c;即红、绿、蓝三原色来表示真彩色&#x…

结合 category 工作原理分析 OC2.0 中的 runtime

绝大多数 iOS 开发者在学习 runtime 时都阅读过 runtime.h 文件中的这段代码: struct objc_class {Class isa OBJC_ISA_AVAILABILITY;#if !__OBJC2__Class super_class OBJC2_UNAVAILABLE;const char *name …

获取子元素

1、纯css 获取子元素 #test1>div {background-color:red;}#test1 div {font-size:14px;}#test1>div:first-child {color:#ccc;} <div id"test1"><div>性别</div><div>男</div></div> 因1示例中为#test1下的子元素 #test1…

JPG PNG GIF BMP图片格式的区别

类型优点缺点应用场景相同图片大小比较BMP无损压缩&#xff0c;图质最好文件太大&#xff0c;不利于网络传输 152KGIF动画存储格式最多256色&#xff0c;画质差 53KPNG可保存透明背景的图片画质中等 202KJPG文件小&#xff0c;利于网络传输画质损失车牌识别84K BMP BMP&…

EasyUI左右布居

<!DOCTYPE html><html xmlns"http://www.w3.org/1999/xhtml"><head runat"server"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8" /> <title>首页</title> <li…

44.Android之Shape设置虚线、圆角和渐变学习

Shape在Android中设定各种形状&#xff0c;今天记录下&#xff0c;由于比较简单直接贴代码。 Shape子属性简单说明一下:   gradient -- 对应颜色渐变。 startcolor、endcolor就不多说了。 android:angle是指从哪个角度开始变.solid -- 填充。stroke -- 描边。corners -- 圆角…

几种边缘检测算子的比较Roberts,Sobel,Prewitt,LOG,Canny

from&#xff1a;https://blog.csdn.net/gdut2015go/article/details/46779251 边缘检测是图像处理和计算机视觉中的基本问题&#xff0c;边缘检测的目的是标识数字图像中亮度变化明显的点。图像属性中的显著变化通常反映了属性的重要事件和变化。这些包括&#xff1a;深度上的…

django 初试

/*************************************************************************************** django 初试* 说明&#xff1a;* 昨天打搭了dgango的服务器&#xff0c;今天学一下怎么来输出一个hello world出来。* * …

浅析“高斯白噪声”,“泊松噪声”,“椒盐噪声”的区别

from&#xff1a;https://www.jianshu.com/p/67f909f3d0ce 在图像处理的过程中&#xff0c;一般情况下都进行图像增强&#xff0c;图像增强主要包括“空域增强”和“频域增强”&#xff0c; 空域增强包括平滑滤波和锐化滤波。 平滑滤波&#xff0c;就是将图像模糊处理&#x…

HttpClient通过Post上传文件(转)

在之前一段的项目中&#xff0c;使用Java模仿Http Post方式发送参数以及文件&#xff0c;单纯的传递参数或者文件可以使用URLConnection进行相应的处理。 但是项目中涉及到既要传递普通参数&#xff0c;也要传递多个文件&#xff08;不是单纯的传递XML文件&#xff09;。在网上…

数字图像处理:各种变换滤波和噪声的类型和用途总结

摘自http://imgtec.eetrend.com/blog/4564 一、基本的灰度变换函数 1.1图像反转 适用场景&#xff1a;增强嵌入在一幅图像的暗区域中的白色或灰色细节&#xff0c;特别是当黑色的面积在尺寸上占主导地位的时候。 1.2对数变换&#xff08;反对数变换与其相反&#xff09; …