第 9 章 使用对象

第 9 章 使用对象

9.1 创建一个对象

<?php
class myClass {
    //
}

$object1 = new myClass();
echo "\$object1 is an ".gettype($object1).".<br/>";

if (is_object($object1)) {
    echo "Really! I swear \$object1 is an object!";
}
?>

结果:

$object1 is an object.
Really! I swear $object1 is an object!

9.1.1 对象的属性

<?php
class myCar {
    public $color = "silver";
    public $make = "Mazda";
    public $model = "Protege5";
}

$car = new myCar();
echo "I drive a: $car->color $car->make $car->model<br/>";
// 改变对象的属性
$car->color = "red";
$car->make = "Porsche";
$car->model = "Boxter";
echo "I drive a: $car->color $car->make $car->model";
?>

结果:

I drive a: silver Mazda Protege5
I drive a: red Porsche Boxter

9.1.2 对象方法

具有方法的一个类

<?php
class myClass {
    function sayHello() {
        echo "HELLO!";
    }
}
$object1 = new myClass();
$object1->sayHello();
?>

结果:

HELLO!

在一个方法中访问类属性

<?php
class myClass {
    public $name = "Jimbo";
    function sayHello() {
        echo "HELLO! My name is $this->name.";
    }
}

$object1 = new myClass();
$object1->sayHello();
?>

结果:

HELLO! My name is Jimbo.

在一个方法中改变一个属性的值

<?php
class myClass {
    public $name = "Jimbo";

    function setName($name) {
        $this->name = $name;
    }
    function sayHello() {
        echo "HELLO! My name is $this->name.";
    }
}

$object1 = new myClass();
$object1->sayHello();
echo "<br/>";
$object1->setName("Julie");
$object1->sayHello();
?>

结果

HELLO! My name is Jimbo.
HELLO! My name is Julie.

9.2 对象继承

继承其父类的一个类

<?php
class myClass {
    public $name = "Matt";

    function setName($name) {
        $this->name = $name;
    }
    function sayHello() {
        echo "HELLO! My name is $this->name.";
    }
}

class childClass extends myClass {
    //
}

$object1 = new childClass("Baby Matt");
$object1->sayHello();
?>

结果:

HELLO! My name is Baby Matt.

子类的方法覆盖了父类的方法

<?php
class myClass {
    public $name = "Matt";

    function setName($name) {
        $this->name = $name;
    }
    function sayHello() {
        echo "HELLO! My name is $this->name.";
    }
}

class childClass extends myClass {
    function sayHello() {
        echo "I will not tell you my name.";
    }
}

$object1 = new childClass("Baby Matt");
$object1->sayHello();
?>

结果:

I will not tell you my name.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • //Clojure入门教程: Clojure – Functional Programming for the J...
    葡萄喃喃呓语阅读 3,796评论 0 7
  • 六月,毕业季, 七月,带娃季。 叠加一起,麻麻们的忙碌季。 哥哥期末考试前两天,我给他去买圆规,碰到哥哥同学的妈妈...
    果等麻麻叽里呱啦说吧阅读 915评论 2 9
  • 假如生命可以重来人生可以更改 假如彼此的相遇可以提前彩排 我想 生活就会更加有趣 或许 有一天 我可以在你生命中消...
    小寇同学阅读 190评论 0 0
  • 先看山是山 只因: 英语五大简单句型。 然后看山不是山 只因: 名词性从句(主语从句、宾语从句、表语从句、同位语从...
    奶香味旅途阅读 239评论 0 2