面向对象的认识----类的转化

---恢复内容开始---

 

概述:

  为了更好的掌握面向对象的编程思维,推荐几种常用的小技巧,来快速提升面向对象的编程。

    1. 告别常量

    2. 告别变量

    3. 告别静态变量

    4. 告别函数

    5. 告别全局变量

    6. 告别Map数组  

其它文章

  同类文章介绍篇:面向对象的认识----新生的初识面向对象的番外----思想的梦游篇(1)面向对象的认识---如何找出类

  面向对象实践篇:手把手教你做关键词匹配项目(搜索引擎)---- 第一天 、手把手教你做关键词匹配项目(搜索引擎)---- 第二十一天(新)

  负载均衡配置篇:负载均衡----概念认识篇负载均衡----实现配置篇(Nginx)负载均衡----文件服务策略

技巧介绍

1.常量转变成常类型

  常量实例:

define("LEVEL_ERROR",‘error‘);
define("LEVEL_WARNING",‘warning‘);
define("LEVEL_INFO",‘info‘);
define("LEVEL_TRACE",‘trace‘);

  常类型实例:

class Level {
    const ERROR = ‘error‘;
    const WARNING = ‘warning‘;
    const INFO = ‘info‘;
    const TRACE = ‘trace‘;
}

2.变量转成属性

  变量实例:

$userName = "张三";
$userAge = 18;
$userAddress = "xx省xx市xx镇xx村";

  属性实例:

class User {
    private $name;
    private $age;
    private $address;

    /**
     * @param mixed $address
     */
    public function setAddress($address)
    {
        $this->address = $address;
    }

    /**
     * @return mixed
     */
    public function getAddress()
    {
        return $this->address;
    }

    /**
     * @param mixed $age
     */
    public function setAge($age)
    {
        $this->age = $age;
    }

    /**
     * @return mixed
     */
    public function getAge()
    {
        return $this->age;
    }

    /**
     * @param mixed $name
     */
    public function setName($name)
    {
        $this->name = $name;
    }

    /**
     * @return mixed
     */
    public function getName()
    {
        return $this->name;
    }

    public function __construct($name="",$age=0,$address=""){
        $this->name = $name;
        $this->age = $age;
        $this->address = $address;
    }
}
$user = new User("张三",18, "xx省xx市xx镇xx村");

3.静态变量转成静态属性

  静态变量实例:

static $app;
if($app == null){
    $app = new App();
}

  静态属性实例:

class App {
    private static $app = null;
    public function instance(){
        if(self::$app == null){
            self::$app = new self;
        }
        return self::$app;
    }
}

4. 静态函数转成静态方法

  静态函数实例:

function version(){
    return "1.0.0.0";
}

  静态方法实例:

class App {
    public static function version(){
        return "1.0.0.0";
    }
}

5. 全局变量转成属性

  全局变量实例:

function login($password){
    global $user;
    if($user->password === $password){
        return true;
    }
    throw new Exception("invalid password!");
}

  属性实例: 

class UserService {

    private $user;

    /**
     * @param mixed $user
     */
    public function setUser($user)
    {
        $this->user = $user;
    }

    /**
     * @return mixed
     */
    public function getUser()
    {
        return $this->user;
    }

    public function login($password){
        if($this->getUser()->password == $password){
            return true;
        }
        throw new Exception("invalid password!");
    }
}

6. Map数组转成对象

  Map数组实例:

$orderItems = array();
function addItem($product,$num,&$orderItems){
    $orderItems[] = array("product"=>$product,"num"=>$num);
}

  对象实例:

class Order {
    private $items;

    public function addItem($product,$num){
        $this->items[] = new OrderItem($product,$num);
    }
}

class OrderItem {
    private $product;
    private $num;

    public function __construct($product,$num){
        $this->product = $product;
        $this->num = $num;
    }
}

总结

  这些都是一些常用的技巧,熟练掌握他们把,也许对你们在以后的编程生涯中会带来乐趣也说不定。 

时间: 2024-11-05 17:19:25

面向对象的认识----类的转化的相关文章

面向对象中类和类的关系

在面向对象方法中,我们在确定了类及类的属性和方法后.不可避免的要研究类和类之间的关系,正是这些关系将整个事情串联起来.使彼此之间有了联系,就像现实生活中,人与人交往中存在着不同的关系. 了解这些关系,对于我们开发系统百利而无一害,能够让我们轻松.高效的工作,相同像我们在日常生活中处理好人与人之间的关系.会给我们带来巨大的优点.那么我们就来认识一下.面向对象中类与类之间有那些关系. 类和类之间的关系大概能够分为一下几种类型:泛化关系(Generalization).实现关系(realization

2Python全栈之路系列之面向对象进阶及类成员

Python全栈之路系列之面向对象进阶及类成员 再次了解多继承 先来一段代码 #!/usr/bin/env python # _*_ coding:utf-8 _*_ class A:     def bar(self):         print("BAR")         self.f1()          class B(A):     def f1(self):         print("B")          class C:     def 

Objective-C语言介绍 、 Objc与C语言 、 面向对象编程 、 类和对象 、 属性和方法 、 属性和实例变量

Objective-C语言介绍 . Objc与C语言 . 面向对象编程 . 类和对象 . 属性和方法 . 属性和实例变量 1 第一个OC控制台程序 1.1 问题 Xcode是苹果公司向开发人员提供的集成开发环境(非开源),用于开发Mac OS X,iOS的应用程序.其运行于苹果公司的Mac操作系统下. 本案例要求使用集成开发工具Xcode编写OC的HelloWorld程序,在Xcode的控制台中, 1.2 方案 首先,启动集成开发工具Xcode. 然后,创建OC语言的工程. 最后,运行所创建的工

附录A培训实习生-面向对象基础(1):类和实例

对象是一个自包含的实体,用一组可识别的特性和行为来标识. 面向对象编程,Object-Oriented Programming,其实就是针对对象进行编程的意思. 类就是具有相同属性和功能的对象的抽象的集合. 在编程过程中注意: 第一,类名称首字母记着要大写.多个单词则各个首字母大写. 第二,对外公开的方法需要用public修饰符. 实例,就是一个真实的对象. 实例化就是创建对象的过程,使用new关键字来创建. 下面是一个例子: 这是一个类, 1 using System; 2 using Sys

C++ Primer 学习笔记_72_面向对象编程 --句柄类与继承[续]

面向对象编程 --句柄类与继承[续] 三.句柄的使用 使用Sales_item对象能够更easy地编写书店应用程序.代码将不必管理Item_base对象的指针,但仍然能够获得通过Sales_item对象进行的调用的虚行为. 1.比較两个Sales_item对象 在编写函数计算销售总数之前,须要定义比較Sales_item对象的方法.要用Sales_item作为关联容器的keyword,必须能够比較它们.关联容器默认使用keyword类型的小于操作符,可是假设给Sales_item定义小于操作符,

PHP中的面向对象 中的类(class)

2.11 上午讲的是面向对象中的类(class),一个非常抽象的概念, 类里面成员的定义有 public$abc; private$abc(私有变量): protect $abc(受保护的变量): 下面是用实例来解释一下class <?php class test_123 { public $a; public $b; function squar() { return $this->a*$this->b; //这里求的是矩形的面积,由于class中定义的都是抽象的,所以这里需要把a.b

Python源码 -- C语言实现面向对象编程(基类&amp;派生类&amp;多态)

由于公司的ERP系统数据量大,有40G+的数据,并发用户90+,连接数1000+,原来的IO性能跟不上用户的操作响应需求,报表查询慢,该做的索引都做过了,索引每周重建一次,还是解决不了问题,为此,公司新购了dell poweredge R720xd服务器,该套服务器支持2个阵列,24个硬盘,双CPU,64G内存,比较牛X的了,我们创建两个raid,两块SAS硬盘做Raid1,6块SSD硬盘做Raid10,系统装好了,高兴呀,但结过测试发现,总有一个raid速度相当慢,和台式机速度一样,我地妈呀,

面向对象(Object类-equals()))

import com.sun.xml.internal.ws.server.ServerRtException; /** * Object 是所有对象的直接或者间接父类. * 该类中定义的肯定是所有对象都具备的功能 * Created by rabbit on 2014-07-29.博客园.刘朋程 * */ class Demo111 { }    * Created by rabbit on 2014-07-29.博客园.刘朋程 public class ObjectDemo {     pu

黑 马 程 序 员_视频学习总结&lt;Objective-C&gt;----01 面向对象思想、类和对象、面向对象方法

---------------------- ASP.Net+Unity开发..Net培训.期待与您交流! ---------------------- 一.面向对象 1. 面向对象和面向过程思想区别 OC为面向对象.C为面向过程.实质是解决问题的两种不同的思想.面向过程关注的是步骤,面向对象关注的是解决问题需要的对象. 2. 常用术语 面向过程:Procedure Oriented面向对象:Object Oriented 简称OO面向对象编程:Object OrientedProgrammin