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