<?php
header("content-type:text/html;charset=utf-8");
class Dome1{ public $name; protected $age; protected $wages; public function __construct($name,$age,$wages) { $this->name = $name; $this->age = $age; $this->wages = $wages; } public function name(){ echo '我的姓名是:'.$this->name.'<br>'; } public function age(){ echo '我的年龄:'.$this->age.'<br>'; } public function wages(){ echo '我的工资:'.$this->wages.'<br>'; } public function All(){ $this->name(); $this->age(); $this->wages(); } } $a = new Dome1('杨幂',31,50000); $a->All();
点击 "运行实例" 按钮查看在线实例
// 类的文件起名:
// 1,有描述意义,比如:***类 woman
// 2,用二级命名,比如:***类 woman.class.php, 二级命名是告诉程序员,不直接运行的文件。
// 一般一个文件,只保存一个类,所以不会类的文件里,调用本类。
// 都是在外部调用。新建个文件,调用这个类。include '类文件';
// include 'woman.class.php';
// 关键字 类外声明 声明类 声明属性 声明方法 解释
// const √ √ 定义类常量
// extends √ 扩展类,用一个类去扩展它的父类
// public √ √ 公用属性或方法
// protected √ √ 私有属性或方法
// private √ √ 受保护的属性或方法
// abstract √ √ 抽象类或方法
// final √ √ 类不能被继承
// ## 1.类属性与类方法(静态成员)
// * 类属性: 静态属性
// * 类方法: 静态方法
// * 静态成员属于类,而不属于对象
// * 静态成员不需要通过对象访问,所以不必实例化
// * 使用`static`关键字定义静态成员
// * 类外使用类名访问,类内使用`self`访问
// * 类外部, 类属性不能用实例访问,但类方法可以
class demo{ public $name; public $age; //静态变量 public static $cuntry = '中国<br>'; //静态方法 public static function getInfo(){ return 111; } } $a = new demo();// 实例化后可以访问类里静态方法,不可访问静态变量 echo $a->getInfo(); echo demo::$cuntry; //静态变量访问方式 echo demo::getInfo();//静态方法访问方式
点击 "运行实例" 按钮查看在线实例
class Demo1{ public $name; public $age; public static $country = '中国'; public function __construct($name,$age) { $this->name = $name; $this->age = $age; } public function getInfo(){ // 这个方法可以用对象访问,方法中访问了静态属性,实现了类属性在对象中的共享 return '姓名是:'. $this->name .'<br>'.'年龄:'.$this->age.'<br>'.'国家:'.self::$country; } public static function getInfo1(){ //静态方法 // 静态变量,在类内,不能用$this->, 只能用self:: return '姓名是:'. $this->name .'<br>'.'年龄:'.$this->age.'<br>'.'国家:'.self::$country; } public static function getInfo2($name,$age){ //静态方法 return '姓名是:'.$name .'<br>'.'年龄:'.$age.'<br>'.'国家:'.self::$country; } } $b = new Demo1('范冰冰',32); echo $b->name.'<br>'; echo $b->age.'<br>'; //echo $b->getInfo(); //echo $b->getInfo1(); //会报错静态方法访问错误 //echo Demo1::getInfo1();//会报错 静态方法不能用this访问 echo Demo1::getInfo2($b->name,$b->age),'<br>';//类名访问 echo $b->getInfo2($b->name,$b->age),'<br>'; //对象访问都可以 Demo1::$country = 'china'; echo Demo1::$country; //静态成员可以重新赋值,在创建很多对象,值不会因为创建的对象改变
点击 "运行实例" 按钮查看在线实例