这几节课的练习与笔记

原创 2018-12-28 11:01:35 254
摘要:DEMO 1<?php/** * 类与对象 * 1. 类是对象的模板,对象是类的实例化 * 2. 类是声明:class * 3. 类的实例化:创建一个类的对象的过程:new *//** * 一、类的声明: * class 类名{} * 类名:必须是合法标识符,只能以字母或是下划线开始,后必须紧跟着字母或下划线(首字母大写) * 类中成员:属性和方法 * 属性:就是类变量,类常量 * 方法:函

DEMO 1

<?php
/**
* 类与对象
* 1. 类是对象的模板,对象是类的实例化
* 2. 类是声明:class
* 3. 类的实例化:创建一个类的对象的过程:new
*/

/**
* 一、类的声明:
* class 类名{}
* 类名:必须是合法标识符,只能以字母或是下划线开始,后必须紧跟着字母或下划线(首字母大写)
* 类中成员:属性和方法
* 属性:就是类变量,类常量
* 方法:函数来表示
*/

//class 类
class Fantong
{
   //定义类属性
   public $name = '孙洪凯';
   public $sex = '男';
   public $age = '20';
   public $company = '天翼瀚潮';

   //开始吃饭(方法)
   public function chi ($liang,$shi)
   {
       //$this 是伪变量,始终指向当前类的实例对象
       //$this 只能用在类的内部,引用类的成员
       $name = $this->name;
       return $name . '正在吃' . $liang . '热乎乎的' . $shi;
   }

   //兴趣爱好(方法)
   public function kiss ($xiwang,$qin)
   {
       $name = $this->name;
       return $name . '正在和' . $xiwang . '疯狂的' . $qin;
   }
}

//二、实例化类
//1. 使用关键字:new + 类名()
//2. 返回的是对象类型的变量
//3. 如何访问对象成员:对象变量->(对象运算符)访问对象的公共成员

$fantong = new Fantong();
//访问对象中的属性
echo '所属公司是:' . $fantong->company,'<br>';

//访问对象中的方法(在类中声明的)
echo $fantong->chi('一堆','屎'),'<br>';
echo $fantong->kiss('张喜望','接吻'),'<br>';


DEMO 2

<?php
/**
* 1. 类的属性初始化
* 2. 类常量的初始化与访问
*/
class Stu
{
   public $name;    //属性初始化必须使用字面量或者构造方法
   public $course;   //属性初始化不允许使用表达式
   public $skill;      //默认为空,抽象属性

   const NATION = 'CHINA';

   /**
    * 构造方法
    * 1. 在构造(创建)类的实例对象的时候,自动调用
    * 2. 以双下划綫开头,这类方法有个特殊名称:魔术方法(事件驱动)
    * 3. 主要用于初始化类成员,或生成对象时自动完成一些工作
    */
   public function __construct($name = '饭桶',$course = 'java')
   {
       $this->name = $name;
       $this->course = $course;
   }
   public function getNation()
   {
       //self  当前类的引用标识符:self
       return $this->name . '的国际是:' . self::NATION;    // :: 就是范围解析符,作用域解析符
   }
}

$stu = new Stu();
echo $stu->name . '上学时学的课程是:' . $stu->course . '<br>';

//直接写参数
$stu = new Stu('喜望','服务器');
echo $stu->name . '上学时学的课程是:' . $stu->course .'<br>';

echo $stu->getNation();


DEMO 3

<?php
// 类的自动加载

include 'public/Car.php';
//include_once  只允许导入一次
//require与include   功能一样,只是错误处理机制不同(include 引入失败只是报错程序仍然执行,require 则直接退出)
include 'public/Mobile.php';

//自动加载器:最重要一个参数就是一个回调
spl_autoload_register(function ($className)
{
   include __DIR__.'\public\\'.$className.'.php';// __DIR__是绝对路径(推荐)
});

$car = new Car('本田','思域','15');

$mobile = new Mobile('苹果','iPhone 6SP','6888');

echo $car->brank.$car->model. ":". $car->price,'<br>';
echo $mobile->brank.$mobile->model. ":". $mobile->price;


DEMO 4

<?php
//类成员的访问限制

class Staff
{
   public $name;   //public:公共的,类的内部、外部,以及继承中都可以访问
   protected $dept;    //protected:受保护的,仅在类的内部,以及子类中使用,外部不可访问
   private $salary;    //private:私有的,仅在类的内部,子类及外部都不可访问

   //构造方法(构造器)
   public function __construct($name,$dept,$salary)
   {
       $this->name = $name;
       $this->dept = $dept;
       $this->salary = $salary;
   }

   //创建一个接口,来访问外部访问受限的数据
   public function getDept()
   {
       $res = $this->dept;
       if ($this->name == '饭桶')
       {
           return '此人是只猪';
       }
       return $res;
   }

   //给私有成员创建一个 接口方法
   public function getSalary()
   {
       $res = $this->salary;
       if ($this->dept == '开发部')
       {
           return '此人马屁拍的响当当,你确定要看他工资吗?';
       }
       return $res;
   }
}

$staff = new Staff('马屁精','开发部','250');
//$staff = new Staff('饭桶','销售','250');
echo '姓名是:' . $staff->name . '<br>';
echo '部门是:' . $staff->getDept() . '<br>';
echo '工资是:' . $staff->getSalary() . '<br>';

批改老师:天蓬老师批改时间:2018-12-28 11:38:59
老师总结:作业完成 的不错,最好能把程序的运行结果附加上来。

发布手记

热门词条