PH面向对象

  1 <?php
  2
  3
  4 //面向过程
  5 /*
  6 $r=5;
  7 $m=3.14*$r*$r;
  8 */
  9
 10 //类和对象
 11 //对象:任何东西都可以成为对象,类实例化出来的东西(相当于题)
 12 //类:对所有同类的对象抽象出来的东西(有共同特征的)(相当于公式)
 13
 14 //info:Code,Name,Sex,Nation,Birthday
 15 //对象:一条具体的信息 p001 张三 男  汉族 1990-2-3
 16
 17 //定义类
 18
 19 class Ren
 20 {
 21     const n=20;//将某些类里面常用到的东西定义为常量,方便使用
 22     public static $class; //static 关键字定义静态成员
 23     public $Name;    //成员变量
 24     protected $age;
 25     private $height;
 26     var $sex; //一般不要给成员变量赋值
 27
 28     function __construct($s)  //构造函数,可以不写
 29     {
 30         $this->sex=$s;
 31     }
 32
 33
 34     function Run()  //成员函数(方法)
 35     {
 36         echo "这个人正在奔跑!";
 37     }
 38     function Say()
 39     {
 40         echo self::$class;   //普通方法里面可以调用静态成员
 41         echo $this->Name."正在说话";
 42     }
 43
 44     function GetSex()
 45     {
 46     return $this->sex;
 47     }
 48
 49
 50     function SetSex($s)
 51     {
 52     $this->sex    =$s;
 53     }
 54
 55     function __set($n,$v)
 56     {
 57         $this->$n =$v;
 58     }
 59
 60     function __get($n)
 61     {
 62         return $this->$n;
 63     }
 64
 65     static function test()  //静态方法
 66     {
 67         echo self::$class;  //调用自身类里面的静态成员
 68         echo "静态方法";
 69     }
 70
 71 }
 72
 73
 74 //使用类
 75 //1.实例化对象  $r是对象
 76 //$r =new Ren("男");
 77 //2.给成员变量赋值(调用成员变量)
 78 //$r->Name =‘张三‘; // 给对象Name赋值
 79 //3.调用成员方法
 80 //$r->Say();   //执行成员方法
 81
 82 //var_dump($r);
 83
 84 //$this引用
 85 //$this代表该对象(那个对象调用代表哪个对象),不是代表该类
 86
 87 //访问修饰符
 88 //1.如果要加访问修饰符需要去掉
 89 //2.三种:public 公有的   protected 受保护的   private  私有的
 90 //3.如果不加访问修饰符 默认是public
 91
 92 //构造函数   function __construct(){}  两道下划线
 93 //1.写法特殊
 94 //2.执行特殊:在造对象的时候最先执行
 95 //3.作用:对对象进行初始化操作
 96
 97
 98
 99 //三大特性
100 //封装:
101 //目的:为了让类更加安全,避免外界直接访问成员变量
102 //做法:1.把成员变量变为私有的
103 //2.通过方法(函数)来间接的操作成员变量
104
105 //继承
106 //如果要继承需要有子类出现
107 //概念:如果一个类有子类,那么该子类会继承父类的一切东西(私有的成员访问不到)
108 //在定义自累的时候需要加一个关键字:extends
109 //特点:单继承,一个类只能有一个父类
110 //如果父类中有构造函数,子类在实例化的时候要按照父类构造函数的标准来实例化
111 //子类对父类方法的重写:在子类中写一个同样的方法
112 //final:用来修饰类,代表该类是一个最终类,该类无法被继承
113
114
115
116 class Test extends Ren
117 {
118     public $birthday;
119
120     function Run()
121     {
122     echo "run";
123     }
124
125     function Say()
126     {
127     parent::Say();  //调用父类的Say()方法
128     echo "你好";
129     }
130 }
131 Ren::$class="0305";
132 $t= new test("女");
133 $t->Name="张三";
134 $t->Say();
135 echo ren::$class;//访问静态成员 类加双冒号
136 echo Ren::test();
137 $t->__set("height","10");
138 //静态成员
139 //类里面的普通成员是属于对象的,不是属于类的(调用的时候是用对象来调用的)
140 //什么叫做静态的:静态成员是属于类的,不是属于每个对象的
141 //定义静态成员用static关键字修饰
142 //静态方法里面无法调用普通成员
143 //静态方法可以调用静态成员,使用self关键字来调用
144 //self代表该类,$this 代表该对象
145
146
147
148
149
150 ?>
时间: 2024-11-09 01:40:48

PH面向对象的相关文章

第八篇:面向对象编程

OOP介绍 一.什么是OOP 1.编程的发展已经从简单控制流中按步的指令序列进入到更有组织的方式中 2.结构化的或过程性编程可以让我们把程序组织成逻辑块,以便重复或重用 3.面向对象编增强了结构化编程,实现了数据与动作的融合 4.数据层和逻辑层由一个可用以创建这些对象的简单抽象层来描述 二.常用术语 1.抽象/实现:抽象指对现实世界问题和实体的本质表现,行为和特征建模,建立一个相关的子集,可以用于描绘程序结构,从而实现这种模型 2.封装/接口:封装描述了对数据/信息进行隐藏的观念,它对数据属性提

从一些简单代码实例彻底理解面向对象编程思想|OOP本质是什么?

从Rob Pike 的 Google+上的一个推看到了一篇叫<Understanding Object Oriented Programming>的文章,我先把这篇文章简述一下,然后再说说老牌黑客Rob Pike的评论. 先看这篇教程是怎么来讲述OOP的.它先给了下面这个问题,这个问题需要输出一段关于操作系统的文字:假设Unix很不错,Windows很差. 这个把下面这段代码描述成是Hacker Solution.(这帮人觉得下面这叫黑客?我估计这帮人真是没看过C语言的代码) 1 2 3 4

初探C++Primer(15.面向对象程序设计)

最近在恶补OOP相关知识,很遗憾学校的课没选上,于是只能上网购进C++Primer一本,开始重学C++之旅... (壮哉我大ZJU,网购半天到货XDD) 学习路线 7.类->13.类设计者的工具->15.面向对象程序设计 总的来说,C++Primer的章节编排顺序是很合理的.有些教材习惯上来就讲虚函数,继承,恰恰缺乏对有关问题的引导,造成学完后半懂不懂的情况. 7.类 类的特性,成员函数,友元函数,构造函数简介 13.类设计者的工具 拷贝构造函数,拷贝赋值运算符,析构函数,内存管理类,合成拷贝

Python基础篇【第十三篇】:面向对象

面向对象编程简称OOP(OOP,object-oriented programming)是一种程序设计思想,OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 面向对象设计简称OOD(OOD,object-oriented design)OOD仅意味着来创建你采用面向对象方式架构来创建系统. 面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行.为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度. 而面向对象的

《Python核心编程》 面向对象编程学习笔记

1. 1. 引言 1. 类与实例 可以定义一个本身没有任何属性的类,而仅把它用做数据的名字空间,这样的类仅作为容器对象来共享名字空间. 示例如下: class MyData(object): pass 下面创建它的实例,它只使用类作为名称空间容器. >>> mathObj = MyData() >>> mathObj.x = 4 >>> mathObj.y = 5 >>> mathObj.x + mathObj.y 9 >>

python之面向对象编程浅谈

1.python中的类与对象 1 Python中定义类的方式比较简单: 2 3 class 类名: 4 5 类变量 6 7 def __init__(self,paramers): 8 9 def 函数(self,...) 10 11 …... 12 13 其中直接定义在类体中的变量叫类变量,而在类的方法中定义的变量叫实例变量.类的属性包括成员变量和方法,其中方法的定义和普通函数的定义非常类似,但方法必须以self作为第一个参数. 举例: 1 >>>class MyFirstTestCl

C++——OOP面向对象理解

从Rob Pike 的 Google+上的一个推看到了一篇叫<Understanding Object Oriented Programming>的文章,我先把这篇文章简述一下,然后再说说老牌黑客Rob Pike的评论.先看这篇教程是怎么来讲述OOP的.它先给了下面这个问题,这个问题需要输出一段关于操作系统的文字:假设Unix很不错,Windows很差.这个把下面这段代码描述成是Hacker Solution.(这帮人觉得下面这叫黑客?我估计这帮人真是没看过C语言的代码) public cla

8. java 面向对象

一.面向对象特征 1. 封装 方法就是一种封装 关键字private也是一种封装 封装就是讲一些逻辑细节信息隐藏起来,对于外界不可见:外界只需调用我即可: 一旦使用了private进行修饰,那么本类当中仍然可以随意访问.但,超出了本类范围就不行了: 间接访问private成员变量,就是定义一对Getter/Setter方法:必须叫setXxx.getXxx命名规则: 对于Getter来说,不能有参数,返回值类型和成员变量对应: 对应Setter来说,不能有返回值,参数类型和成员变量对应: 对于基

python中面向对象

一.Python经典类与新类 经典类:如果没有直接或间接的子类化一个对象,也就是说如果没有指定一个父类,或者是如果子类化的基本类没有父类,那么就定义了经典类: class classics: 'define a classics Class' pass 新式类:与经典类相反.object是“所有类之母”,也就是基类,如果你的类没有继承任何父类,object将作为默认的父类: class newClass(object): 'define a classics Class' pass 二.Pyth