php面向对象
2015-08-06 09:19
603 查看
1. 类的创建
创建一个类 man.php;
对这个类进行实例化;
require_once 'man.php';
$m = new man('zhang', 3);
echo $m->getName();
2. 类的命名空间;
在工程中,会出现相同类名的类,这种情况下通过不同的命名空间区分;
定义两个相同类名的类,分别放在两个目录下
<?php
namespace thystar;
class hello1
{
public function say(){
echo 'hello';
}
}
<?php
namespace thy;
class hello1
{
public function say(){
echo 'hello thy';
}
}
使用这两个类;
require_once 'thystar/hello1.php';
require_once 'thy/hello1.php';
$t1 = new \thystar\hello1();
$t2 = new \thy\hello1();
$t1->say();
$t2->say();
3. 成员方法和类方法
成员方法:定义在类中的方法,如setter和getter等;
类方法 : 用static定义的方法;即静态方法,执行时不需要创建实例用“类::方法”执行
eg: 在上面的man类中定义:
调用这个方法:
man::say();
类方法的使用场合: 描述属性。
静态的常量,变量,及静态的方法都是用于描述设计信息的,如:
对man这个类做如下修改;
<?php
class man
{
/**
* @param string $name
* @param int $age
*/
private $name, $age;
public function __construct($name, $age){
$this->name = $name;
$this->age = $age;
//echo 'construct';
man::$NUM++
if(man::$NUM > man::MAX_NUM){//限制人数;
throw new Exception("over");
}
}
/**
* @return mixed
*/
public function getAge()
{
return $this->age;
}
/**
* @param mixed $age
*/
public function setAge($age)
{
$this->age = $age;
}
/**
* @return mixed
*/
public function getName()
{
return $this->name;
}
/**
* @param mixed $name
*/
public function setName($name)
{
$this->name = $name;
}
public static function say(){//静态方法
echo 'I am a man';
}
//创建静态常量
private static $NUM = 0;
const MAX_NUM = 200;
}
调用:
for($i=0; $i<200; $i++){
new man('thystar', 10);
}
4. 类的重构和方法重写;
首先,定义一个People类(对之前的man类修改):
<?php
/**
* Created by PhpStorm
* Date: 2015/8/5
* Time: 22:30
*/
class People
{
/**
* @param string $name
* @param int $age
* @param string $sex
*/
private $name, $age, $sex;
public function __construct($name, $age, $sex){
$this->name = $name;
$this->age = $age;
$this->sex = $sex;
//echo 'construct';
People::$NUM++;
if(People::$NUM > People::MAX_NUM){
throw new Exception("over");
}
}
/**
* @return mixed
*/
public function getSex()
{
return $this->sex;
}
/**
* @param mixed $sex
*/
public function setSex($sex)
{
$this->sex = $sex;
}
/**
* @return mixed
*/
public function getAge()
{
return $this->age;
}
/**
* @param mixed $age
*/
public function setAge($age)
{
$this->age = $age;
}
/**
* @return mixed
*/
public function getName()
{
return $this->name;
}
/**
* @param mixed $name
*/
public function setName($name)
{
$this->name = $name;
}
public function sayhi(){
echo $this->name;
}
public static function say(){
echo 'Hi';
}
//创建静态常量
private static $NUM = 0;
const MAX_NUM = 200;
}
定义继承类Man;
方法调用:
require_once 'Man.php';
$man = new Man('zzzzz', 11);
$man->sayhi();
创建一个类 man.php;
<?php class man { /** * @param string $name * @param int $age */ private $name, $age; public function __construct($name, $age){ $this->name = $name; $this->age = $age; echo 'construct'; } /** * @return mixed */ public function getAge() { return $this->age; } /** * @param mixed $age */ public function setAge($age) { $this->age = $age; } /** * @return mixed */ public function getName() { return $this->name; } /** * @param mixed $name */ public function setName($name) { $this->name = $name; } }
对这个类进行实例化;
require_once 'man.php';
$m = new man('zhang', 3);
echo $m->getName();
2. 类的命名空间;
在工程中,会出现相同类名的类,这种情况下通过不同的命名空间区分;
定义两个相同类名的类,分别放在两个目录下
<?php
namespace thystar;
class hello1
{
public function say(){
echo 'hello';
}
}
<?php
namespace thy;
class hello1
{
public function say(){
echo 'hello thy';
}
}
使用这两个类;
require_once 'thystar/hello1.php';
require_once 'thy/hello1.php';
$t1 = new \thystar\hello1();
$t2 = new \thy\hello1();
$t1->say();
$t2->say();
3. 成员方法和类方法
成员方法:定义在类中的方法,如setter和getter等;
类方法 : 用static定义的方法;即静态方法,执行时不需要创建实例用“类::方法”执行
eg: 在上面的man类中定义:
public static function say(){ echo 'I am a man'; }
调用这个方法:
man::say();
类方法的使用场合: 描述属性。
静态的常量,变量,及静态的方法都是用于描述设计信息的,如:
对man这个类做如下修改;
<?php
class man
{
/**
* @param string $name
* @param int $age
*/
private $name, $age;
public function __construct($name, $age){
$this->name = $name;
$this->age = $age;
//echo 'construct';
man::$NUM++
if(man::$NUM > man::MAX_NUM){//限制人数;
throw new Exception("over");
}
}
/**
* @return mixed
*/
public function getAge()
{
return $this->age;
}
/**
* @param mixed $age
*/
public function setAge($age)
{
$this->age = $age;
}
/**
* @return mixed
*/
public function getName()
{
return $this->name;
}
/**
* @param mixed $name
*/
public function setName($name)
{
$this->name = $name;
}
public static function say(){//静态方法
echo 'I am a man';
}
//创建静态常量
private static $NUM = 0;
const MAX_NUM = 200;
}
调用:
for($i=0; $i<200; $i++){
new man('thystar', 10);
}
4. 类的重构和方法重写;
首先,定义一个People类(对之前的man类修改):
<?php
/**
* Created by PhpStorm
* Date: 2015/8/5
* Time: 22:30
*/
class People
{
/**
* @param string $name
* @param int $age
* @param string $sex
*/
private $name, $age, $sex;
public function __construct($name, $age, $sex){
$this->name = $name;
$this->age = $age;
$this->sex = $sex;
//echo 'construct';
People::$NUM++;
if(People::$NUM > People::MAX_NUM){
throw new Exception("over");
}
}
/**
* @return mixed
*/
public function getSex()
{
return $this->sex;
}
/**
* @param mixed $sex
*/
public function setSex($sex)
{
$this->sex = $sex;
}
/**
* @return mixed
*/
public function getAge()
{
return $this->age;
}
/**
* @param mixed $age
*/
public function setAge($age)
{
$this->age = $age;
}
/**
* @return mixed
*/
public function getName()
{
return $this->name;
}
/**
* @param mixed $name
*/
public function setName($name)
{
$this->name = $name;
}
public function sayhi(){
echo $this->name;
}
public static function say(){
echo 'Hi';
}
//创建静态常量
private static $NUM = 0;
const MAX_NUM = 200;
}
定义继承类Man;
<?php require_once 'People.php'; class Man extends People { public function __construct($name,$age ){ parent::__construct($name, $age, 'm'); } //重写方法 public function sayhi(){ echo 'I am a man'; } }
方法调用:
require_once 'Man.php';
$man = new Man('zzzzz', 11);
$man->sayhi();
相关文章推荐
- PHP常用的排序和查找算法
- PHP register_shutdown_function函数详解
- FileInputStream&FileOutputStream
- PHP常用的排序和查找算法
- php实现无限级分类(递归方法)
- PHP获取一年有几周以及每周开始日期和结束日期
- PHP下载生成的csv文件及问题总结
- 33个超级有用必须要收藏的PHP代码样例
- 个人猜想的web安全——理解PHP的sessionID的实现
- PHP变量的生命周期
- 快速搭建PHP+iis环境
- PHP扩展的基本结构
- 手把手教你个性化EditPlus的PHP自动补全功能
- php利用递归函数实现无限级分类
- rewrite(摘自Yii2)
- PHP服务器框架(欢迎补充)
- Windows Server 2003,PHP连接SQL Server 2005
- yii中事件的了解
- 在PHP中定义常量时,const与define的区别
- PHP获取当前页面的URL