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