面向对象:
一:定义类

class Dog
{
var $name;
var $age;
var $pinzhong; function Jiao()
{
echo "{$this->name}在叫";
}
}

二:实例化对象
    $dog = new Dog();
    调用对象的成员:
    $dog->name = "旺财";
        调用成员方法:
    $dog->Jiao();

三、$this关键字(放在类里面就代表这个类实例化出来的一个对象)
$this->$name;this代表该对象,如果要在成员方法中调用成员变量,一定要使用$this找出该成员变量。
  完整代码:

 class Dog
{
var $name;
var $age;
var $pinzhong; function Jiao()
{
echo "{$this->name}在叫"; //this代表的是当前这个对象
}
} $dog = new Dog(); $dog->name = "旺财";
$dog->age = 10;
$dog->pinzhong = "哈士奇"; $dog->Jiao() //调用成员方法

四、构造函数:(构造函数是对类进行初始化的,php里面没有函数的重载)
1.执行时间特殊
2.写法特殊
   代码如下:

class Dog
{
var $name; //写访问修饰符时,var就不用写了
var $age;
var $pinzhong; function __construct($n,$a,$p) //构造函数的写法,注意是两个下划线相连,前面必须空格
{
$this->name = $n;
$this->age = $a;
$this->pinzhong = $p;
}
function Jiao()
{
echo "{$this->name}在叫"; //this代表的是当前这个对象
}
} $dog = new Dog("旺财",10,"金毛");
$dog->Jiao() //调用成员方法

五、析构函数(不能有任何参数)

function __destruct()
{
echo "拜拜";
}

六、封装:
将类里面的成员变量加一个private修饰符变成私有的,目的是为了保护类里面的成员不被外界随意访问,从而确保类的安全性。如果将变量设置为私有,如何去访问:
    1.自己写函数get函数set函数,然后来对变量赋值和取值
    2.用系统自带的__get()函数和__set()函数来实现类里面的变量赋值取值

  function __set($name,$value)
{
$this->$name = $value;
}
function __get($name)
{
return $this->$name;
}

完整代码:

 class Dog
{
private $name; //写访问修饰符时,var就不用写了
private $age;
private $pinzhong; function __set($name,$value)
{
$this->$name = $value;
}
function __get($age)
{
return $this->$age;
}
function __construct($n,$a,$p)
{
$this->name = $n;
$this->age = $a;
$this->pinzhong = $p;
}
function Jiao()
{
echo "{$this->name}在叫,它{$this->age}岁了";
}
function __destruct()
{
echo "拜拜";
}
} $dog = new Dog("旺财",10,"金毛");
$dog->name = "小强";
$dog->age = 3;
echo $dog->age; $dog->Jiao() //调用成员方法

七:继承
    继承一般是单继承:一个儿子只能有一个父亲
    子类可以继承父类的所有成员
        
        class HashiQi extends Dog  //dog是父类 HashiQi是子类
    {
        
    }

子类可以对父类的成员方法进行重写:(函数名一样),如果要在子类方法中调用父类的方法,用parent::Jiao();

 function Jiao()
{
parent::Jiao(); //parent代表父类 ::代表调用方法,用类名调用
echo "hello";
}

完整代码:

 class Dog
{
private $name; //写访问修饰符时,var就不用写了
private $age;
private $pinzhong; function __set($name,$value)
{
$this->$name = $value;
}
function __get($age)
{
return $this->$age;
}
function __construct($n,$a,$p)
{
$this->name = $n;
$this->age = $a;
$this->pinzhong = $p;
}
function Jiao()
{
echo "{$this->name}在叫,它{$this->age}岁了";
}
function __destruct()
{
echo "拜拜";
}
}
class HashiQi extends Dog //dog是父类 HashiQi是子类
{
function Jiao()
{
parent::Jiao(); //parent代表父类 ::代表调用方法,用类名调用
echo "hello";
}
}
$dog = new HashiQi("旺财",10,"金毛");
$dog->name = "小强";
$dog->age = 3;
echo $dog->age; $dog->Jiao() //调用成员方法

final关键字可以定义该类为最终类,不可被继承
    
    静态:
    关键字:static ,如果成员声明了为静态的,那么该成员是属于该类的,不是属于对象的
    如何调用静态的成员:
    HaShiQi::$height = 10;
    HaShiQi::Gao();
    用类名加双冒号调用类的静态成员

php课程---面向对象的更多相关文章

  1. {key}面向对象程序设计-C++ polymorphism 【第十三次上课笔记】

    Peronal Link: http://segmentfault.com/a/1190000002464822 这节课讲了本门课程 面向对象程序设计中最为重要的一个部分 - 多态 /******** ...

  2. JAVA课程实验报告 实验二 Java面向对象程序设计

    北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计  班级:1353  姓名:韩玉琪  学号:20135317 成绩:             指导教师:娄嘉 ...

  3. 我的首个MOOC课程《面向对象软件开发实践》

    我的首个MOOC课程<面向对象软件开发实践> 我将在网易云课堂开讲MOOC课<面向对象软件开发实践>(http://mooc.study.163.com/course/YOOK ...

  4. 【作业4.0】HansBug的第四次面向对象课程思考

    嘛..不知不觉这门课程要结束了,那么就再说点啥以示庆祝呗. 测试vs正确性论证 说到这个,相比很多人对此其实很有疑惑,请让我慢慢分析. 逻辑概览 首先我们来看看两种方式各自的做法和流程是什么样的: 单 ...

  5. 王之泰《面向对象程序设计(java)》课程学习总结

    第一部分:理论知识学习部分 总复习纲要 1. Java语言特点与开发环境配置(第1章.第2章) 2. Java基本程序结构(第3章) 3. Java面向对象程序结构(第4章.第5章.第6章) 4. 类 ...

  6. 2018年秋季学期面向对象程序设计(JAVA)课程总结

    2018年秋季学期面向对象程序设计(JAVA)课程总结 时值2018年年末,按惯例对本学期教学工作小结如下: 1. 教学资源与教学辅助平台 教材:凯 S.霍斯特曼 (Cay S. Horstmann) ...

  7. Java面向对象课程设计——购物车

    Java面向对象课程设计——购物车 小组成员:余景胜.刘格铭.陈国雄.达瓦次仁 一.前期调查 流程 客人(Buyer)先在商城(Mall)中浏览商品(Commidity),将浏览的商品加入购物车(Sh ...

  8. 2017-2018面向对象程序设计(Java)课程助教工作职责及分工

    2017-2018面向对象程序设计(Java)课程助教工作职责及分工 一.研究生助教团队名单 张光辉,王玉环,牟巧玲,徐进 二.工作职责与要求 1) 针对所指导学习小组学生,批改课程实验作业每周一次, ...

  9. THE LAST ONE!! 2017《面向对象程序设计》课程作业八

    THE LAST ONE!! 2017<面向对象程序设计>课程作业八 031602230 卢恺翔 GitHub传送门 题目描述 1.时间匆匆,本学期的博客作业就要结束了,是否有点不舍,是否 ...

随机推荐

  1. Spring的LoadTimeWeaver(代码织入)

    在Java 语言中,从织入切面的方式上来看,存在三种织入方式:编译期织入.类加载期织入和运行期织入.编译期织入是指在Java编译期,采用特殊的编译器,将切面织入到Java类中:而类加载期织入则指通过特 ...

  2. CentOS安装PHP和mysql

    新生在不会编译的情况下: 1.安装PHP5 yum install php 根据提示输入Y直到安装完成 2.安装PHP组件,使 PHP5 支持 MySQL yum install php-mysql  ...

  3. php函数获取文件名

    <?php // php 获取  文件名 function getExt($url){ $arr = parse_url($url); // URL 字符串予以解析,并将结果返回数组中 //pr ...

  4. jQuery操作列表数据转成Json再输出为html dom树

    jQuery 把列表数据转成Json再输出为如下 dom树 <div id="menu" class="lv1"> <ul class=&qu ...

  5. 快学Java NIO

    Java NIO Tutorial 地址:http://tutorials.jenkov.com/java-nio/index.html Java NIO系列教程译文地址:http://ifeve.c ...

  6. three.js光源

    在Threejs中,光源用Light表示,它是所有光源的基类.它的构造函数是: THREE.Light ( hex ) 它有一个参数hex,接受一个16进制的颜色值.例如要定义一种红色的光源,我们可以 ...

  7. linux安装SVN

    1. 下载软件包 http://archive.apache.org/dist/subversion/ http://archive.apache.org/dist/subversion/subver ...

  8. BZOJ 2882 & 后缀数组的傻逼实现

    题意: 一个字符环,求一个开头使字典序最小. SOL: 后缀数组打起来...然后居然卡过...10sec的实现我10936ms...居然卡过??? rank倒三...啦啦啦啦啦.... 改个离散化会不 ...

  9. BZOJ 1901 & 整体二分

    题意: 带修改的区间第K小. SOL: 看了很久很久很久很久的整体二分,网上的各种题解也不是很多,也一直很不了解所谓的"贡献","将询问一起递归"是什么意思.. ...

  10. STL 的运用 istringstream的运用

    单词数 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...