博客列表 >类和对象-类封装

类和对象-类封装

夜澜风的博客
夜澜风的博客原创
2019年05月04日 17:04:491191浏览

<?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; //静态成员可以重新赋值,在创建很多对象,值不会因为创建的对象改变

运行实例 »

点击 "运行实例" 按钮查看在线实例


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议