美文网首页
7.1 类的概念

7.1 类的概念

作者: 57fc17b7d598 | 来源:发表于2017-06-23 16:27 被阅读8次

类是对一个东西的描述,对象是根据这个描述实现出来的东西

类在PHP中表现的形式是 class ,对象的表现形式是 object

一个类中可以有自己的常量、变量(称之为属性)、函数(称之为方法)。

// 我是一个 '人' 的类
class People{

    // 属性列表
    public $name;
    public $age;

    // 构造方法
    public function __construct(string $n, int $a){
        $this->name = $n;
        $this->age = $a;
    }
    
    // 方法列表
    public function say(){
        echo "<p>我叫:{$this->name}</p>";
        echo "<p>今年:{$this->age} 岁</p>";
    }
    public function eat(){
        echo "<p>我需要吃饭喝水</p>";
    }
    public function sleep(){
        echo "<p>我需要睡觉</p>";
    }
}

// 我是一个 '人' 的对象,这步操作也叫实例化
$people = new People('刘国际', 26);

// 说句话看看
$people->say();

在类的普通方法(非静态)中使用 $this 变量可以获取到当前类的实例对象,但记得不要尝试去修改它。

通过 new 关键字可以将一个 class 类实例化,得到一个对象。

当把一个对象赋值给另一个变量时,默认便是引用赋值, 可以通过 clone 关键进行传值赋值,也就是克隆一个新的对象。

// 克隆一个对象
$temp = clone $people;

上例中展示了一般情况下创建实例对象的方法,但还可以通过一些别的方式来创建对象。

// 创建一个对象
$className = "People";
$temp1 = new $className("刘德华", 55);
var_dump($temp1);

// 创建一个对象
$temp2 = new $temp1("张学友", 50);
var_dump($temp2);

再看一些创建对象的方法

// 定义类
class Foo{
    public $name = "iGuoji";
    public static function byStatic(){
        return new static;
    }
}

// 实例化
$foo = new Foo();

// 通过方法实例化
$fooStatic = Foo::byStatic();

// 两者都是 Foo类 的实例
($foo instanceof Foo) and ($fooStatic instanceof Foo);
($foo instanceof $fooStatic) and ($fooStatic instanceof $foo);

// 两者相等,但不绝对相等
($foo == $fooStatic) and ($foo !== $fooStatic);




// 定义类
class Bar extends Foo{
    public function bySelf(){
        return new self;
    }
    // 创建父类的对象
    public function byParent(){
        return new parent;
    }
}

// 实例化
$bar = new Bar();

// 通过方法实例化
$barStatic = Bar::byStatic();
$barSelf = Bar::bySelf();
$barParent = Bar::byParent();

// 前三者都是 Bar类 的实例
($bar instanceof Bar) and ($barStatic instanceof Bar) and 
    ($barSelf instanceof Bar);

// 四者都是 Foo类 的实例
($bar instanceof Foo) and ($barStatic instanceof Foo) and 
    ($barSelf instanceof Foo) and ($barParent instanceof Foo);

// 除了第四个外,其他都相等
$bar != $barParent;

// 第四个和之前的 Foo类 实例相等
$barParent == $foo;

相关文章

  • 7.1 类的概念

    类是对一个东西的描述,对象是根据这个描述实现出来的东西。 类在PHP中表现的形式是 class ,对象的表现形式是...

  • 7. 类与对象

    基本概念 参考:7.1 类的概念 访问控制 针对对象的属性和方法,可以使用访问控制来限制它的作用域 public:...

  • 零基础学Python 读《编程小白的第一本 Python 入门

    第七章 类与可口可乐 7.1 定义一个类 类是有一些系列有共同特征和行为事物的抽象概念的总和。在类里面赋值的变量就...

  • 异常

    7.1异常基本概念异常是导致程序中断的运行一种指令流,所有异常均以类和对象的形式存在,可自定义异常类,处理抛出异常...

  • 第7章 面向对象编程(OOP) 《Kotin 编程思想·实战》

    第7章 面向对象编程(OOP) 7.1 面向对象思想 7.2 类与继承7.2.1 类7.2.1.1 抽象类7.2....

  • 第七章 面向对象技术(1)

    7.1 面向对象基础 —— 基本概念1.Unified Modeling Language - UML,是面向对象...

  • scala07.类

    7.1简单类和无参方法 通过class进行类的定义。注:在Scala中,类并不声明为Public,一个Scala源...

  • 7.1 电磁学概念

    关于电的产生,还有问题没有解答。

  • 第5天 PHP函数与递归

    7. 函数 7.1. 函数的概念与作用 var_dump() 、sqrt()、floor() 、ceil() 在P...

  • JNI基础(7): JNI访问和修改Java类

    7.1 java中的基本类型和引用类型的签名规则 jni中 java类的签名为: L + 包名 + 类名,再将原来...

网友评论

      本文标题:7.1 类的概念

      本文链接:https://www.haomeiwen.com/subject/tqbccxtx.html