大家,你们说php是什么类型的语言?
它是面向对象与面向过程的编程语言,混合型的把,这个编程语言。
也就是说既可以使用面向对象也可以使用面向过程。。
面向对象:把它看成一个对象来看待把,也就是说我叫你做什么,也可以说是面向对象是指挥型的把,指挥对象做什么的把。
面向过程基本有以下几点:这是什么—对象用来做----对象做的结果是。
而面向对象直接是我想做什么事—叫你帮我完成—结果直接给我就行了。核心是不管细节。直接封装把,兄dei。
面向过程是关注细节的。也就是说每一个步骤都要清清楚楚的哈。
类与对象:
类是什么?
类是一类事物的简称。
对象又是什么?
对象是某一类事物的具体实例。
动物与狗的区分把。
对象有什么?
对象有属性与方法?
那什么是属性?
属性是自身已经有的东西,手脚之类的把,身体把,
什么又是方法呢?
方法是用,我能用手脚干什么。我能用脑子做什么事。
反正就是属性与方法诠释了对象与类把,唉
对象有的东西类都有,类有的东西对象就不一定了呀。
比如什么呢,动物有尾巴,人没有。
人有嘴,动物也有嘴把。
记住,类是主观的。
对象是客观的啊
那什么是主观,什么又是客观?
主观,虚拟的。
客观,实实在在存在的东西。
记住,类是许多具有相同特征的对象的集合哈
对象是类的实例哈
那什么是对象名呢?
这个对象叫什么的,比如我叫陈业贵。
记住,类是抽象的哈。
既可以说存在又可以说不存在把。
核心:相同哈。
演示一个类与对象的代码把,各位。
<?php
class people
{
var $a;
function eat()
{
echo "吃饭";
}
}
$b=new people();
$b->eat();
?>
写面向对象需要注意的地方:
类的声明需要使用关键字class以及后面的类名。其中类名必须符合变量的命名规则但不要$类名后的一对{}中可以定义变量和方法类的变量使用var来声明,变量也可以初始化值类中函数的定义,类似php的函数定义。类中的函数和变量,必须通过该类或者实例化的对象访问。
问题:老师,我想问一个问题,就是如果在类中直接设置了属性的值是不是每一次创建类的实例的时候都会是这个属性值呢?
对的,不过有一个解决方案,就是在类中不要赋值,在创建类的实例化的时候才赋值吧。
那老师,怎么调用该类的方法呢?
记住,一定要通过该类所创建的实例来调用才行哈!!!
老师,还有一个问题,是类先有,还是对象先有啊?
这,得分两个方面来讲解:
如果是现实生活中是先有对象才有类。
在电脑虚拟中是先通过类才有对象。
为什么呢?
因为狗是动物的一种哈
因为在什么都没有的情况下,不能凭空有一个对象吧,所以先看看现实生活中的某一类共同的东西,然后抽象成类吧,然后才有对象的啊
代码演示吧:
<?php
class people
{
var $a;
function eat($e)
{
echo($e);
}
}
$a=new people();
var_dump($a);
echo "<br />";
$b=new people();
var_dump($b);
echo "<br />";
$c=new people();
var_dump($c);
?>
记住,php中用->来访问对象中的成员(属性与方法).
看看怎么访问的哈
<?php
class people
{
var $name;
var $sex;
var $age;
function say()
{
echo "说话";
}
function study()
{
echo "学习";
}
}
$a=new people();
echo "a:".$a->name="q";
echo "<br />";
echo "a:".$a->sex="男";
echo "<br />";
echo "a:".$a->age=20;
echo "<br />";
$b=new people();
echo "b:".$b->name="w";
echo "<br />";
echo "b:".$b->sex="男";
echo "<br />";
echo "b:".$b->age=21;
echo "<br />";
$c=new people();
echo "c:".$c->name="e";
echo "<br />";
echo "c:".$c->sex="男";
echo "<br />";
echo "c:".$c->age=22;
?>
this:
既然我们懂如何在类的外部访问,但是在类的内部如何访问呢?
通过一个东西:this,它代表的是那一个对象调用类的内部的就是哪一个对象哈。
<?php
class people
{
var $name="李文";
var $sex;
var $age;
function say()
{
echo "说话";
}
function study($b)
{
echo "谁在学习:".$this->name;
echo "<br />";
echo "谁在学习:".$b->name;
}
}
$a=new people();
$a->study($a);
?>
构造函数与析构函数开始:
构造语法·:__contruct()
析构语法:__destruct()
记住,这两个都是在类的内部的.