1.类,命名空间,成员方法和类方法

定义类,hello.php:

<?phpclass Hello{public function sayHello(){echo 'hello php';}
}class Desktop{//一个php可以写多个类public function  work(){echo 'work';}
}

调用:

<?php/*面向对象特性在php5后出现*/
require_once 'hello.php';
$h = new Hello();
$h->sayHello();//hello php$d = new Desktop();
$d->work();//work

命名空间

新建文件选择php class
放入文件夹m,

<?php//命名空间
namespace m;class HELLO2
{public function sayHello(){echo 'hello m';}
}

同样方法建个放入m2:

<?phpnamespace mm;class HELLO2
{public function sayHello(){echo 'hello mm';}
}

调用:

<?phprequire_once 'm/HELLO2.php';
require_once 'm2/HELLO2.php';$h = new \m\HELLO2();
$h->sayHello();//hello mecho '<br>';
$h2 = new \mm\HELLO2();
$h2->sayHello();//hello mm

成员方法和类方法

Man.php

<?phpclass Man {public function __construct(){//__construct()  构造方法echo '构造方法在创建类的实例就执行';}
}

调用:

<?phprequire_once 'Man.php';
$m = new Man();

Man2.php

<?phpclass Man2 {/* 输入  /**后回车  *//*** @param $age int 年龄* @param $name string 姓名*/public function __construct($age,$name){//__construct()$this->age = $age;$this->name = $name;}public function getAge(){//成员方法return $this->age;}public function getName(){return $this->name;}private  $age,$name;//类方法,成员方法前+static,又叫静态方法  用来描述类的public static function sayHello(){echo '用来描述属性';}private static $NUM = 0;//静态变量,只在类内部使用const MAX_NUM=10;//静态常量public static function sayHello2(){Man2::$NUM++;if(Man2::$NUM>Man2::MAX_NUM){throw new Exception('抛出异常');}}
}

/**
* @param $age int 年龄
* @param $name string 姓名
*/

调用加提示

调用:

<?phprequire_once 'Man2.php';
$m2 = new Man2(10,'m');
//echo $m2->getName();//m//静态方法用::执行
//Man2::sayHello();//类方法/静态方法 ::执行/*for($i=0;$i<10;$i++){Man2::sayHello2();//没输出
}*//*for($i=0;$i<11;$i++){Man2::sayHello2();//Fatal error: Uncaught exception 'Exception' with message '抛出异常'
}*/for($i=0;$i<Man2::MAX_NUM;$i++){Man2::sayHello2();
}

2.类的继承与方法重写

People.php

<?phpclass People {/*** @param $age int 年龄* @param $name string 姓名* @param string $sex 性别*/public function __construct($age,$name,$sex){//__construct()$this->age = $age;$this->name = $name;$this->sex = $sex;}public function getAge(){//成员方法return $this->age;}public function getName(){return $this->name;}public function getSex(){return $this->sex;}private  $age,$name,$sex;public function hi(){echo $this->name.'say hi';}public function hi2(){//和hi相同echo $this->name.'say hi';}
}

Man.php

<?phprequire_once 'People.php';
class Man extends People{//继承public function __construct($age,$name){parent::__construct($age,$name,'男');}public function hi2(){//重写//      parent::hi2();//执行父类的方法echo "重写的".$this->getName();//不能用this.name}
}

index.php

<?phprequire_once 'Man.php';
$m = new Man(10,'w ');
//$m->hi();//w say hi$m->hi2();//重写的w 

PHP面向对象相关特性相关推荐

  1. 第五节 面向对象相关特性

    第五节  面向对象相关特性 1.命名空间 namespace xueyuan; 2.创建类 class Hello {public function sayHello(){echo "hel ...

  2. C#面向对象三大特性之二:继承

    面向对象的三大特性之一的封装,解决了将对同一对象所能操作的所有信息放在一起,实现统一对外调用,实现了同一对象的复用,降低了耦合. 但在实际应用中,有好多对象具有相同或者相似的属性,比如有一个对象 果树 ...

  3. [.net 面向对象编程基础] (13) 面向对象三大特性——多态

    [.net 面向对象编程基础] (13) 面向对象三大特性--多态 前面两节,我们了解了面向对象的的封装和继承特性,面向对象还有一大特性就是多态.比起前面的封装和继承,多态这个概念不是那么好理解.我们 ...

  4. Java(三)面向对象的特性

    Java(三)面向对象的特性 构造方法生成小技巧:使用idea时,在代码空白处单击右键,选择Generate选项,之后再选择Constructor生成构造器,也可以使用toString()来重写这个函 ...

  5. 夯实Java基础系列1:Java面向对象三大特性(基础篇)

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  6. C# 面向对象三大特性

    一.封装 封装 被定义为"把一个或多个项目封闭在一个物理的或者逻辑的包中".在面向对象程序设计方法论中,封装是为了防止对实现细节的访问. 抽象和封装是面向对象程序设计的相关特性.抽 ...

  7. 允许使用抽象类类型 isearchboxinfo 的对象_Java新手必学:面向对象的特性都有哪些?...

    面向对象是Java基础阶段最重要的知识点.那么面向对象到底有哪些特性你都知道吗? 今天我们就来具体学习一下Java面向对象的特性. 1.封装: 封装给对象提供了隐藏内部特性和行为的能力.外部无法直接访 ...

  8. 【Python学习笔记】面向对象三大特性

    2019独角兽企业重金招聘Python工程师标准>>> ★面向对象:封装.继承和多态是面向对象的三大特点★ 面向对象编程简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元 ...

  9. Java第四次作业——面向对象高级特性(继承和多态)

    Java第四次作业--面向对象高级特性(继承和多态) (一)学习总结 1.学习使用思维导图对Java面向对象编程的知识点(封装.继承和多态)进行总结. 2.阅读下面程序,分析是否能编译通过?如果不能, ...

最新文章

  1. 科大讯飞AI开发者大赛报名开启,百万奖金等你来!
  2. CS-APP:Section 5.1,Memory aliasing :看上去逻辑一样,执行结果一样吗?
  3. 牛客网——10进制 VS 2进制
  4. php 得到 ts文件,获取TypeScript声明文件.d.ts步骤详解
  5. H5版定点投篮游戏编程设计--物理模型抽象
  6. 一加7T系列配置细节看下,可以一战否?
  7. 动态规划学习(35分钟视频课)
  8. Python3 学习
  9. mysql的过程返回执行成功与失败_进行数据库操作的时候,操作错误或者失败,但是不报错...
  10. VirtualBox的BUG:没超线程也认为有
  11. centos7播放MP4视频需要MPEG-4 AAC解码器,和H.264(High profile) 解码器
  12. 关于SAS学习的记录
  13. 视频编码格式全面解析
  14. win10 中文语言包
  15. ADC 外电阻分压种种
  16. stellarium-0.19.3.1-win64.exe下载
  17. 程序员因违反竟业协议,赔腾讯97.6万...
  18. python自学多久能精通-python多久可以精通
  19. 如何开启GBase XDM的操作日志
  20. js计算当前时间的为年的第几周,以及周对应的时间范围

热门文章

  1. Linux环境编程导引
  2. @ControllerAdvice + @ExceptionHandler 全局处理 Controller 层异常
  3. iOS逆向之旅(进阶篇) — 重签名APP(一)
  4. springcloud云服务架构-HongHu commonservice-eureka项目构建过程
  5. SpringCloud(第 054 篇)简单 Quartz-Cluster 微服务,采用注解配置 Quartz 分布式集群... 1
  6. 设计模式(结构型模式)——装饰模式(Decorator)
  7. 应邀ITGeGe在线教育社区嵌入式基础开发讲师
  8. Solr 部分 局部字段修改 更新 删除
  9. 关于Jquery EasyUI中的DataGrid服务器端分页随记
  10. Eclipse过滤多余无用的Link文件和文件夹