类和对象

什么是类

什么是类?

这几乎是每一位面向对象初学者要问到的问题。那么我们暂且放开什么是类,我来问大家什么是人类?

有同学会回答:具有相同特征的某一类动物就是人类。

好,这位同学回答的很好,可能有的同学就不以为然了,那么一类动物的一类又是什么?好吧,我们陷入了一个鸡生蛋还是蛋生鸡的困境了。

你就记住具有相同特征的一群动物,我们称之为类。这个时候你想必知道了类他指的是一群,是一个集合,而且是一个抽象的集合。那么张三跟李四呢?是不是人?是的,他们是更具体的人类。

这就是我们后面要跟大家讲的,类是对象的抽象,而对象是类的具体表现,也就是类实现。

或者说类是对象的模板。

类的声明

类的声明需要使用关键字class这一点跟我们的函数的声明有所区别

类别 函数
声明关键字 class function
修饰词 static,public,protected,private,abstract,final static
特征值 类成员属性 变量
行为 类成员方法 函数
扩展性 通过继承来实现扩展性 重新定义新函数

类的声明

<?php 

class People
{
    public $name = 'xiaoming';

    protected $age = 32;

    private $salary = 1500;

    public function say()
    {
        return $this->name;
    }

    protected function sayAge()
    {
        return $this->age;
    }

    private function saySalary()
    {
        return $this->salary;
    }
}

?>

什么是对象

对象是具体的某一事物,对象就是类的实例化,具体体现。

类与对象的关系

  1. 类是对象的抽象集合
  2. 对象是类的实例化,或称类的具体表现

举例:

对象是对现实世界中实体的描述。

如果我说具有手足、鼻子眼睛等器官,同时有说话,吃饭睡觉功能的动物的集合,你可能在脑海中只是很模糊的一个概念,只是知道有这样那样的器官和功能。

但是我这个时候说,你看张三,他就是这个集合的一份子,这一瞬间你就明白了,我要表达的是什么了。对,张三就是我们人类实例化,具体化的某个动物。而人类就是由张三抽象出的一个群体。

实例化一个对象

<?php 

class People
{
    public $name = 'xiaoming';

    protected $age = 32;

    private $salary = 1500;

    public function __construct($name, $age, $salary)
    {
        $this->name = $name;
        $this->age = $age;
        $this->salary = $salary;
    }

    public function say()
    {
        return $this->name;
    }

    protected function sayAge()
    {
        return $this->age;
    }

    private function saySalary()
    {
        return $this->salary;
    }
}

$zhangsan = new People('zhangsan', 22, 1000);

echo $zhangsan->say();

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

推荐阅读更多精彩内容

  • 1、面向对象 面向对象的优点: (1)便于程序模拟现实世界中的实体用“类”表示实体的特征和行为 (2)隐藏细节对象...
    3e1094b2ef7b阅读 516评论 0 0
  • 类是一个重要的C#编程概念,它在一个单元内定义了表示和行为。类提供了面向对象编程和面向组件编程所需的语言支持,是创...
    CarlDonitz阅读 905评论 0 2
  • 一、类与对象 类:类是一个模板,描述一类对象的状态和行为;对象:对象为类的一个实例,具有自己的属性(状态)和方法(...
    谁吃了我的薯条阅读 612评论 0 1
  • Objective-C语言是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理。这种动态语言的...
    有一种再见叫青春阅读 626评论 0 3
  • 2.1 类的基础知识2.2 构造函数2.3 拷贝构造函数2.4 析构函数2.5 C++能自动产生成员函数2...
    笑笑学生阅读 424评论 0 0