>php教程 >php手册 >用类与接口描述普通日常生活

用类与接口描述普通日常生活

WBOY
WBOY원래의
2016-06-13 09:38:23884검색

面向对象编程中,类和接口是最基础的两个概念了。下面写一个简单的程序,分别演示使用基类与接口如何编写程序。程序很简单,不用过多解释,直接上代码了。广大程序员兄弟们一定能够明白是什么意思吧。

先是类的方式。

<?php
/**
 * 类模式老婆
 * Wife基类
 */
class Wife {
    public function Cook($howToCook, $vegetableArray) {
        $this->BuyVegetables ( $vegetableArray );
        for($i = 0; $i < count ( $howToCook ); $i ++) {
            
            //要吃的菜没有?买去
            if (in_array ( $howToCook [$i] ["one"], $vegetableArray )) {
                $this->BuyVegetables ( array ($howToCook [$i] ["one"] ) );
            } else if (in_array ( $howToCook [$i] ["two"], $vegetableArray )) {
                $this->BuyVegetables ( array ($howToCook [$i] ["two"] ) );
            } else {
                "做饭";
            }
        }
    }
    
    /**
     * 买菜
     * @param array $vegetableArray 菜名数组
     */
    public function BuyVegetables($vegetableArray) {
        "去菜场买菜";
    }
    
    /**
     * 洗衣服
     */
    public function WashClothes() {
        "1_干洗外套";
        "2_洗衣机洗裤子";
        "3_手洗袜子";
    }
    
    /**
     * 做家务
     */
    public function DoHouseholdDuties() {
        "1_扫地";
        "2_拖地";
        "3_擦桌子";
    }
}
/**
 * I类 继承Wife类
 * @author Samuel
 */
class I extends Wife {
    
    /**
     *打游戏 
     */
    function PlayGames() {
        "打游戏";
    }
    
    /**
     * 打篮球
     */
    function PlayBasketball() {
        "打篮球";
    }
    
    /**
     * 看电视
     */
    function WatchTV() {
        "看电视";
    }
    
    /**
     * 煮饭
     * @see Wife::Cook()
     */
    function Cook() {
        //哥哥今天要吃的菜
        $howToCook = array (array ("one" => "猪肉", "two" => "芹菜", "operation" => "炒" ), array ("one" => "土豆", "two" => "牛肉", "operation" => "烧" ) );
        $vegetableArray = array ("猪肉", "鸡蛋", "酸奶", "香菇", "芹菜", "土豆", "牛肉" );
        parent::Cook ( $howToCook, $vegetableArray );
    }
    
    /**
     * 洗衣服
     * @see Wife::WashClothes()
     */
    function WashClothes() {
        //调用Wife类洗衣服方法
        parent::WashClothes ();
    }
    
    /**
     * 做家务
     * @see Wife::DoHouseholdDuties()
     */
    function DoHouseholdDuties() {
        //调用Wife类做家务方法
        parent::DoHouseholdDuties ();
    }
}
?>

然后是接口的方式:

<?php
/**
 * 接口模式老婆
 * Wife接口
 */
interface Wife {
    /**
     * 煮饭
     * @param array $howToCook 菜的做法
     * @param array $vegetableArray 需买的菜的数组
     */
    function Cook($howToCook, $vegetableArray) {
    }
    
    /**
     * 买菜
     * @param array $vegetableArray 菜名数组
     */
    function BuyVegetables($vegetableArray) {
    }
    
    /**
     * 洗衣服
     */
    function WashClothes() {
    }
    
    /**
     * 做家务
     */
    function DoHouseholdDuties() {
    }
}
/**
 * I类 实现Wife接口
 * @author Samuel
 */
class I implements Wife {
    
    /**
     *打游戏 
     */
    function PlayGames() {
        "打游戏";
    }
    
    /**
     * 打篮球
     */
    function PlayBasketball() {
        "打篮球";
    }
    
    /**
     * 看电视
     */
    function WatchTV() {
        "看电视";
    }
    
    /**
     * 煮饭
     * @param array $howToCook 菜的做法
     * @param array $vegetableArray 需买的菜的数组
     */
    public function Cook($howToCook, $vegetableArray) {
        $this->BuyVegetables ( $vegetableArray );
        for($i = 0; $i < count ( $howToCook ); $i ++) {
            
            //要吃的菜没有?买去
            if (in_array ( $howToCook [$i] ["one"], $vegetableArray )) {
                $this->BuyVegetables ( array ($howToCook [$i] ["one"] ) );
            } else if (in_array ( $howToCook [$i] ["two"], $vegetableArray )) {
                $this->BuyVegetables ( array ($howToCook [$i] ["two"] ) );
            } else {
                "做饭";
            }
        }
    }
    
    /**
     * 买菜
     * @param array $vegetableArray 菜名数组
     */
    public function BuyVegetables($vegetableArray) {
        "去菜场买菜";
    }
    
    /**
     * 洗衣服
     */
    public function WashClothes() {
        "1_干洗外套";
        "2_洗衣机洗裤子";
        "3_手洗袜子";
    }
    
    /**
     * 做家务
     */
    public function DoHouseholdDuties() {
        "1_扫地";
        "2_拖地";
        "3_擦桌子";
    }
}
?>
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.