− 定义了一件事物的抽象特点。类的定义包含了数据的形式以及对数据的操作。

对象 − 是类的实例。一切皆对象。由类实例化出来的。

成员变量 − 定义在类内部的变量。该变量的值对外是不可见的,但是可以通过成员函数访问
,在类被实例化为对象后,该变量即可称为对象的属性。

成员函数 − 定义在类的内部,可用于访问对象的数据。


访问修饰符
public 公有的,任何地方都可以访问,包括类的内部、该类的子类和类实例化的对象
protected 受保护的,只能在该类或该类的子类中访问
private 私有的,只能在该类中访问


类是对象的模板,所以要定义规范、合理的类结构首先应该明确类应该具有的属性和方法:

定义语法:

class 类名

{

public 成员变量1;
public 成员变量2; 

function 成员函数名()
{
$this->成员变量名; //(变量 $this 代表自身的对象。)
}
}
实例化:对象名=new 类名();
调用类里边的成员变量:对象名->成员变量名;
调用类里边的成员函数:对象名->成员函数名();

例题:计算两个圆之间的阴影面积

class yuan
{ public $banjing;
function mianji()
{ return$this->banjing*$this->banjing*3.14;
}
} $dayuan=new yuan();
$xiaoyuan=new yuan();
$dayuan->banjing=10;
$xiaoyuan->banjing=5;
echo$dayuan->mianji()-$xiaoyuan->mianji();

 


__开头的方法在面向对象里面成为魔术方法


PHP 构造函数(__construct)

构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。

构造函数的两大特殊:
1.写法特殊:方法名特殊
2.执行时间特殊:造对象的时候就执行

对对象里面的成员进行初始化

class yunsuan
{
public $a;
public $b;
function __construct($c,$d) //构造函数(construct)在实例化时,就开始执行
{
$this->a=$c;
$this->b=$d; //把参数的值赋给$a,$b }
function jia()
{
return $this->a+$this->b;
}
}
$ff=new yunsuan(10,5); //构造函数在new时 开始执行
echo $ff->jia();

析构函数(__destruct)

析构函数(destructor) 与构造函数相反,当对象结束其生命周期时(例如对象所在的函数已调用完毕),系统自动执行析构函数。

用来清理内存,当程序之行结束,来清楚用完的对象等;

class YunSuan
{
public $a;
public $b; //构造方法
function __construct($a1,$b1)
{
$this->a = $a1;
$this->b = $b1;
} //析构方法,在对象内存释放的时候执行
function __destruct()
{
echo "该对象释放了";
}
function Chu()
{
return $this->a/$this->b;
}
} //造对象
$y = new YunSuan(10,5); echo $y->Chu();

php部分---面向对象:定义、实例化、构造函数、析构函数;的更多相关文章

  1. PHP面向对象 实例化 构造函数 封装 继承 静态

    PHP面向对象 实例化 构造函数 封装 继承 静态 面向对象: 一:定义类 class Dog { var $name; var $age; var $pinzhong; function Jiao( ...

  2. Java 基础入门随笔(7) JavaSE版——面向对象定义、特征:封装、构造函数

    面向对象 面向过程:对于面向过程思想,强调的是过程(动作). 面向对象:对于面向对象思想,强调的是对象(实体). 特点: 1,面向对象就是一种常见的思想.符合人们的思考习惯.2,面向对象的出现,将复杂 ...

  3. 【C++ Primer 第15章】定义派生类析构函数

    学习资料 • 基类和派生类析构函数执行顺序 定义派生类析构函数 [注意]定义一个对象时先调用基类的构造函数.然后调用派生类的构造函数:析构的时候恰好相反:先调用派生类的析构函数.然后调用基类的析构函数 ...

  4. C++ 类 & 对象-类成员函数-类访问修饰符-C++ 友元函数-构造函数 & 析构函数-C++ 拷贝构造函数

    C++ 类成员函数 成员函数可以定义在类定义内部,或者单独使用范围解析运算符 :: 来定义. 需要强调一点,在 :: 运算符之前必须使用类名.调用成员函数是在对象上使用点运算符(.),这样它就能操作与 ...

  5. Javascript面向对象——创建对象、构造函数的原型

    Javascript面向对象--创建对象.构造函数的原型 其实:JavaScript中的创建类,就是创建一个构造函数,在创建对象时用到new这个关键字, 一.创建对象 1.函数创建对象 functio ...

  6. C++构造函数/析构函数 设置成private的原因

    C++构造函数/析构函数 设置成private的原因 标签(空格分隔): c/c++ 将构造函数,析构函数声明为私有和保护的,那么对象如何创建? 已经不能从外部调用构造函数了,但是对象必须被构造,应该 ...

  7. C++反汇编第一讲,认识构造函数,析构函数,以及成员函数

    C++反汇编第一讲,认识构造函数,析构函数,以及成员函数 以前说过在C系列下的汇编,怎么认识函数.那么现在是C++了,隐含有构造和析构函数 一丶认识构造函数 高级代码: class MyTest { ...

  8. (二)Javascript面向对象编程:构造函数的继承

    Javascript面向对象编程:构造函数的继承   这个系列的第一部分,主要介绍了如何"封装"数据和方法,以及如何从原型对象生成实例. 今天要介绍的是,对象之间的"继承 ...

  9. 079 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 04 实例化对象

    079 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 04 实例化对象 本文知识点:实例化对象 说明:因为时间紧张,本人写博客过程中只是对知 ...

  10. 2016/3/21 面向对象: ①定义类 ②实例化对象 ③$this关键字 ④构造函数 ⑤析构函数 ⑥封装 ⑦继承

    一:定义类   二:实例化对象 //定义类 class Ren { var $name; var $sex; var $age; function Say() { echo "{$this- ...

随机推荐

  1. 如何禁止在DBGRID末位自动添加一行记录

    http://www.tc5u.com/cpp/xg-1730729.htm 用DBGridEh吧,只要设置属性alopAppendEh为false即可 最简单将DBGrid的option属性中goE ...

  2. ProcessOn:功能强大的在线作图工具(HTML5)

    ProcessOn是一款专业作图人员的社交网络,这里汇聚很多业界专家.学者,同时他们分享的作品又形成一个庞大的知识图库,你在学习专业知识的同时还可以结交一些志同道合的新朋友. ProcessOn核心设 ...

  3. System.Web.HttpRequestBase转HttpWebRequest

    /// <summary> /// Copies all headers and content (except the URL) from an incoming to an outgo ...

  4. POJ题目分类(按初级\中级\高级等分类,有助于大家根据个人情况学习)

    本文来自:http://www.cppblog.com/snowshine09/archive/2011/08/02/152272.spx 多版本的POJ分类 流传最广的一种分类: 初期: 一.基本算 ...

  5. [转] linux中巧用ctrl-z后台运行程序

    背景: 最近在执行一些长时间程序的时候,老是一不小心忘了输入‘&’ , 结果终端就卡在那里了,很是郁闷 以前总是再新开一个终端. 今天翻看<鸟哥的linux私房菜>的时候,发现介绍 ...

  6. Ubuntu 14.10 下设置静态IP

    修改 /etc/network/interfaces 文件 sudo nano /etc/network/interfaces 修改为 # 前面的不变auto eth0 iface eth0 inet ...

  7. mysql 为某一数据库下所有表中添加相同字段

    BEGIN  DECLARE s_tablename VARCHAR(100);  /*显示表的数据库中的所有表 SELECT table_name FROM information_schema.t ...

  8. 链表操作----将单链表向右旋转 K 个位置

    给定一个单链表,设计一个算法实现链表向右旋转 K 个位置. 举例: 给定 1->2->3->4->5->6->NULL, K=3 则     4->5-> ...

  9. LeetCode----3 Sum

    Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all un ...

  10. 多态-I(继承实现)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...