摘要: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		
						
老师总结:作业完成 的不错,最好能把程序的运行结果附加上来。					
 
                 
 
 
  
            