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 ?>
原文地址:https://www.cnblogs.com/zbxiaoxu/p/5441846.html