一.面向对象

1.面向过程:一个人分步骤完成某个事情

2.面向对象:某件事情拆分为多个任务,由每个对象独立完成,最后调用整合为一个完整的项目

3.三要素:继承、封装、多态。

封装:私有化属性 提供公共访问方法。(直接操作属性不可控。比如年龄赋值999)。

继承:子类对父类的特性的继承

多态:由于子类对父类方法的重写导致的调用同一个方法出现的不同结果就叫多态。

4.优点:易维护、易扩展、易复用

二、类与对象

关系:对象依存于类。一个对象可以隶属于多个类。

对象一般为不可拆分的个体,但一个类也可以是一个对象。比如有47名同学的一个班级,如果把班级作为一个班级类中的一个对象,则这个班级不能包括47个个人。

三、类(成员:属性和方法)

1.    定义类:class--定义一个类

  var--类中的属性的修饰符

  function--定义类中的一个方法

 //定义一个类
class human{
var $name = '';
var $age = '';
var $sex = '';
var $todo = '';
function showInfo(){
echo '姓名:'.$this->name.'<br>年龄:'.$this->age.'<br>性别:'.$this->sex.'<br>做了什么:'.$this->todo;
}
}

1.1类中的属性:

定义形式(var是public的别名,public正式):
  var  $v1 ;        //定义不赋值
  var  $v2 = 2;        //定义的同时赋值,值不能是变量,也不能是“计算表达式”
  public  $v1;
  public   $2 = 2;

使用形式:

$对象->属性名  //属性名前面没有$符号。

1.2类中的方法:

定义与之前的一样。

使用:对象名->方法名(参数)

方法前可以加修饰词:public,protected,priate,不写默认“public”

方法中的$this是一个“伪对象”,代表当前所属类的当前对象。

注意:一个类的变量初始化必须在构建函数里面进行,不能在变量声明时初始化。

2.    创建一个对象(四种方法)

 //1.直接new
$xiaohong = new renlei();
$xiaohong->name = '小红';
$xiaohong->age = 3;
$xiaohong->sex = '男';
$xiaohong->todo = '开炮';
$xiaohong->showInfo();
//2.可变类名
$lei = 'renlei';
$xiaoming = new $lei();
$xiaoming->showInfo();
//3.new self:在类的方法内部 代表类本身
$xiaogang= new renlei();
$lisi=$xiaogang->cself();
$lisi->showInfo();
//4.通过对象创建对象
$xiaogang = new renlei();
$xiaogang->name = "小刚";
$zhangsan = new $xiaogang;
$xiaogang->showInfo();
$zhangsan->showInfo();

3.对象的传值(值传递和引用传递--&)

4.一个系统函数:get_class(对象)--获得某个对象的“所属类名”——结果只是一个类名字符串

四、关键字static

1.定义时,在属性/方法前加上static,即可成为静态属性/方法。

2.静态属性和方法隶属于类本身,是所有对象的“共有数据”。

3.使用:类::$静态属性名  //双冒号,带$符号。

4.$this在静态方法中不能使用。(静态方法是类的,$this是对象的,有局限性,非静态方法也不可调用,同理)

五.构造方法/析构方法

特点:方法名固定,不定义也会自动调用

1.构造方法(__construct):创建对象时自动调用,例如:

 class human{
var $name = '';
function showInfo(){
echo $this->aa;
}
//构造方法 方法名固定 默认存在 且每次都会调用
function __construct($name){
$this->name = $name;
}
}
$person = new human('222');
$person->showInfo();

2.析构方法():销毁对象时自动调用。php代码执行结束会自动销毁对象,可用析构方法查看。

注意:析构方法不能调用,析构方法不能有形参。

手动销毁对象:unset($p1);

0604-面向对象、类与对象、类、static、构造方法/析构方法的更多相关文章

  1. php笔记(二)PHP类和对象之Static静态关键字

      PHP类和对象之Static静态关键字 静态属性与方法可以在不实例化类的情况下调用,直接使用类名::方法名的方式进行调用.静态属性不允许对象使用->操作符调用. class Car { pr ...

  2. 02.php面向对象——构造方法&析构方法

    <?php //自己写的构造方法 class Computer{ public function Computer(){ echo '构造方法'; } } new Computer();//这样 ...

  3. java基础:详解类和对象,类和对象的应用,封装思想,构造方法详解,附练习案列

    1. 类和对象 面向对象和面向过程的思想对比 : 面向过程 :是一种以过程为中心的编程思想,实现功能的每一步,都是自己实现的 面向对象 :是一种以对象为中心的编程思想,通过指挥对象实现具体的功能 1. ...

  4. Day07:常用模块,面向对象编程(对象&类)及内置函数

    今日内容:1.常用模块2.面向对象编程(*****)    介绍面向对象编程    类    对象3.内置函数------------------------------1.面向过程编程    核心“ ...

  5. java学习-初级入门-面向对象③-类与对象-类与对象的定义和使用1

    今天学习类与对象.先大致解释一下类与对象的含义. 对象:object 有物体这一概念,一切皆对象(物体),对象由静态的属性和动态的行为组成. 比如说水杯: 水杯的静态属性:材质,容量,质量,颜色 动态 ...

  6. 【C++】类和对象(构造与析构)

    类 类是一种抽象和封装机制,描述一组具有相同属性和行为的对象,是代码复用的基本单位. 类成员的访问权限 面向对象关键特性之一就是隐藏数据,采用机制就是设置类成员的访问控制权限.类成员有3种访问权限: ...

  7. python的类和对象——类成员番外篇

    学完了面向对象的三大特性,已经get了所有屌丝技能的我们也当一回文艺小青年,来看看类的成员和成员修饰符. 今天‘三’这个数字好亲和~~~类成员可以分为三类:字段.方法和属性 一.字段 首先我们来看看字 ...

  8. Java自学-类和对象 类属性

    Java的类属性和对象属性 当一个属性被static修饰的时候,就叫做类属性,又叫做静态属性 当一个属性被声明成类属性,那么所有的对象,都共享一个值 与对象属性对比: 不同对象的 对象属性 的值都可能 ...

  9. python的类和对象——类的静态字段番外篇

    什么是静态字段 在开始之前,先上图,解释一下什么是类的静态字段(我有的时候会叫它类的静态变量,总之说的都是它.后面大多数情况可能会简称为类变量.): 我们看上面的例子,这里的money就是静态字段,首 ...

随机推荐

  1. 转:selenium自动化脚本错误总结

    https://blog.csdn.net/zxy987872674/article/details/53141118

  2. day06-数字类型、字符串类型内置方法

    目录 数字类型内置方法 字符串类型内置方法 有序 or 无序 可变 or 不可变 数字类型内置方法 1. int()强制类型转化成整型 age_str = '18' # 定义字符串 age = int ...

  3. 原型链、构造函数、箭头函数、se6数组去重

    原型链 例子如下: var arr = [1, 2, 3]; 其原型链为:arr ----> Array.prototype ----> Object.prototype ----> ...

  4. SQL上门

    学习这个 介绍:SQL 是用于访问和处理数据库的标准的计算机语言.结构化化查询语言! SQL可以分为两大部分:数据操作语言(DML)和数据定义语言(DDL) 数据操作语言:select.update. ...

  5. Python类中的 私有变量和私有方法

    默认情况下,Python中的成员函数和成员变量都是公开的(public),在python中没有类似public,private等关键词来修饰成员函数和成员变量.在python中定义私有变量只需要在变量 ...

  6. 腾讯云,搭建nginx静态网站服务器

    搭建Http静态服务器环境 任务时间:15min ~ 30min 搭建静态网站,首先需要部署环境.下面的步骤,将告诉大家如何在服务器上通过 Nginx 部署 HTTP 静态服务. 安装 Nginx 在 ...

  7. PAT 1091. Acute Stroke (bfs)

    One important factor to identify acute stroke (急性脑卒中) is the volume of the stroke core. Given the re ...

  8. 费用最少的一款赛门铁克SSL证书

    Symantec Secure Site SSL证书,验证域名所有权和企业信息,属于Symantec Class 3企业(OV)验证 级SSL证书,为40位/56位/128/256位自适应加密,目前连 ...

  9. Hibernate基于注解annotation的配置

    Annotation在框架中是越来越受欢迎了,因为annotation的配置比起XML的配置来说方便了很多,不需要大量的XML来书写,方便简单了很多,只要几个annotation的配置,就可以完成我们 ...

  10. 神奇的幻方 noip2015day1 T1

     题目描述 Description 幻方是一种很神奇的N∗N矩阵:它由数字 1,2,3, … … ,N∗N构成,且每行.每列及两条对角线上的数字之和都相同. 当N为奇数时,我们可以通过以下方法构建一个 ...