PHP语言 -- 面向对象

1.定义类

class Ren
{
public $name; //定义成员变量
var $sex;

function Say()  //定义方法
{
echo "这个人在讲话";
}
}

2.实例化

$ren = new Ren();  //实例化

$ren->name="张三"; //调用成员 变量
$ren->sex="女";

$ren->Say();//调用方法

3.this引用

class Ren
{
public $name;
public $sex;

public function Say()
{
echo $this->name."这个人在说话";  //this 代表对象 不是类
}
}

$ren= new Ren();

$ren->name="张三";

$ren->Say();

4.构造函数

class Ren
{
public $name;
public $sex;

function __construct($name,$sex)  //构造函数
{
$this->name=$name;
$this->sex = $sex;
}

}

$ren = new Ren("李四","男");

5.析构函数

function __destruct()  //销毁对象 施放内存,关闭连接等  自动执行
{
echo "该对象马上要销毁了";
}

6.封装

class Ren
{
private $name; //将成员变量 私有
private $sex;
private $age;

//封装:访问成员变量的方法
    public function SetAge($age)
    {
        if($age > 18 && $age <80)
        {
        $this->age = $age;
        }
    } 

//封装:简便方法赋值 ,自动调用
   public function __set($name,$value)
    {
    if($name=="age")
    {
        if($value>18 && $value <80)
        {
        $this->$name = $value;
        }
    }
    else
    {
    $this->$name = $value;
    }
    }
//封装:简便方法获取值
    public function __get($name)
    {
    return $this->name;
    } 

}

$ren = new Ren("李四","男")

$ren->name = "什么";    

echo $ren->sex;    

7.继承

class Student extends Ren
{
//父类方法重写
function Say()
{
 parent::Say();  //调用父类方法
 echo "这是子类的方法";
}
}

8.关键字

final  用来修饰类 ,如果把一个类定义成final类,该类就无法被继承了

final class Ren
{
}

static 静态的

class Student
{
static public $class;//定义静态变量
static function Say() //定义静态方法
{
echo "aaaa";
}
}

Student::$class = "hello";//调用静态变量

echo Student::$class

Student::$class;//调用静态方法

const 在类里定义常量

const ss=3.14; //定义常量

echo Studen::ss
时间: 2024-08-05 11:14:58

PHP语言 -- 面向对象的相关文章

c语言面向对象编程

#include <stdio.h> #include <stdlib.h> /*  *  *   1.  简单实现模拟虚函数表实现c语言面向对象的设计  *   2.  为实现:  函数注册调用  *   3.            通过文件实现函数注册调用  */ //封装 typedef struct _Shape Shape; //模拟虚函数表 struct ShapeClass {     void (*construct)(Shape* self); //构造函数   

Go语言开发(四)、Go语言面向对象

Go语言开发(四).Go语言面向对象 一.结构体和方法 1.结构体的定义 在结构体中可以为不同项定义不同的数据类型.结构体是由一系列具有相同类型或不同类型的数据构成的数据集合.结构体定义需要使用type和struct语句.struct语句定义一个新的数据类型,结构体有中有一个或多个成员.type语句设定了结构体的名称.结构体的格式如下: type struct_variable_type struct { member definition; member definition; ... mem

C语言面向对象的简便方法

都知道C语言是面向过程的,但是现在软件规模越来越大,通过面向对象的方式可以简化开发.业余时间想了个简单的方法,在C中使用一部分面向对象的基本功能.由于C语言自身的限制,并不完善,只能将就用,聊胜于无,如果大家有好的想法可以一起讨论. 首先还是老规矩上代码: http://files.cnblogs.com/GhostZCH/object.rar 面向对象有三个基本属性:封装.继承和多态. 此处一一讲解处理方法. 1. 封装,基本思想就是用结构体代替类,属性没什么好说的,方法就麻烦点只能用函数指针

GO语言面向对象

当初开发go语言的时候就是因为C++的特性太过于繁杂,从而使得很多C++的开发者因为C++的特性而头疼,go语言成功的精简了C++的特性,使其很简洁,很少的特性,却可以完成很多的事情. go语言中并没有像C++,Java语言中这类的Class,它只含有像C语言中的结构体,用结构体和指针等特性,完成一个类的作用,很巧妙的使用了指针和结构体,不仅是go的面向对象,包括go语言中的map等操作都是借助了结构体.其实,说白了,C++.Java等面向对象的语言中,类的底层实现就是结构体,对象的引用就是指针

区块链技术语言(二十四)——Go语言面向对象:匿名组合

继承也是面向对象的三大基本特性之一.通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”.“父类”或“超类”.通过继承,不仅可以让某个类型的对象拥有属于自己的数据结构和操作,还会自动拥有父类的数据结构和操作.这使得现有的类在无需重新编写原来类的情况下对这些功能进行了扩展,很好地解决了代码的重用问题.继承机制的魅力和强大在于它允许程序员利用已经存在的类,并且可以以某种方式扩展这个类,而且对其他继承了这个父类属性和方法的对象没有影响.但Go语言没有继承这个概念,它通过匿名组合间接实现了

区块链技术语言(二十三)——Go语言面向对象:方法

封装是面向对象三大特性之一.封装的好处,一个是增加代码内聚性,就是将数据和对数据的操作封装在一起,提高可复用性和可维护性:还有就是信息隐藏,就是把不该暴露的信息藏起来,通过访问控制来隐藏数据,不被外界干扰.也就是说,一个对象就是一个封装了数据和操作这些数据的代码的逻辑实体.Go语言没有封装这个名词,但它通过方法实现了封装的特性. 一.Go语言方法 方法,本质上是一个函数.与普通函数的格式有一点不同,它在关键字 func 和方法名中间加入了一个特殊的接收器类型.其格式如下: 注: a. 接收者t的

go语言面向对象之方法

1.实现方法 package main import "fmt" //在面向对象编程中,一个对象其实就是一个简单的值或者一个变量,在这个 //对象中包含一些函数 //这种带有接受者的函数,我们称之为方法,本质上,一个方法 //则是一个和特殊类型关联的函数 //定义一个方法,实现两个数相加 type myint int //传统的定义方式,面向过程的方式定义函数 func Add(a,b myint) myint{ return a + b } //面向对象的方式定义方法,这个意思是Ad

(Object-C)学习笔记(二) --OC语言面向对象和基本概念

现在的高级编程语言大部分都是面向对象编程的. 那么什么是面向对象呢?我用我的见解举个例子:假设你正在用word编辑这么两件事 1.一个人走到桌子前面(1)拿起可乐(2)打开盖子(3)喝光(4)放下瓶子(5). 2.一个人走到桌子前面(1)拿起点心(2)吃了(3). 那么如果是用面向过程的方式来编程,第一件事是一个大括号,里面写着这5步.第二件事是一个大括号,里面写着3步.写这么两件事全部手写,不允许黏贴复制,一共8步. 如果使用面向对象的方式来编程,把这个过程分为了动作和物品,把这些步骤写出来但

PHP语言 -- 面向对象和面向过程的区别

例子:求阴影面积 面向过程 $r1 = 20; $r2 = 10; $mj = 3.14*$ri*$ri-3.14*$r2*$r2; echo $mj; 面向对象 class Yuan { private $r; function __construct($r) { $this->r = $r } function Mj() { return 3.14*$this->r*$this->r; } } $yuan1 = new Yuan(20); $yuan2 = new Yuan(10);

R语言面向对象编程:S3和R6

一.基于S3的面向对象编程 基于S3的面向对象编程是一种基于泛型函数(generic function)的实现方式. 1.S3函数的创建 S3对象组成:generic(generic FUN)+method(generic.class FUN) 泛型函数(generic)创建示例: get_n_elements <- function(x,...) { UseMethod("get_n_elements") } 通常用UseMethod()函数定义一个泛型函数的名称,通过传入参数