zoukankan      html  css  js  c++  java
  • 面向对象:两手交换牌

    封装思想、构造函数===
    第1题.问题:两手交换牌

    1.定义类(个人理解:指代具体事物的单体,属性指的是类的单体的构成部分,题目中明显看到的有手和牌两个事物,以及交换这个动作,那么我们就知道交换的动作是人制造的,然后手有牌,牌有花色和数字,之所以把人牵扯进来,是因为交换的动作需要人来进行,而动作可以视为人这个类的一个函数,所以需要加入人的类)
    1)定义牌类(一张牌分为颜色和数字,所以需要做拼接)
    属性:花色、数字(一般赋值为空,或设置变量,不会赋具体数值,具体数值由对象来做)

    2)定义手类(这里指的是一只手,而发生交换这个动作必须要人的两只手,不需要创建两个相同的类,所以必然需要创建两个对象)
    属性:卡牌

    3)定义人类(一个人类有两只手,所以属性中需要分别定义左手和右手用来组成人类的手部)
    属性:左手、右手(变量、构造函数)
    动作:交换卡牌(函数)

    2.创建类和函数

    1)创建卡牌类
    定义属性:分为花色和数字
    class pai: #创建牌类
    def init(self): #创建构造函数
    self.colors=None #定义牌的花色变量为空
    self.nums=None #定义牌的数字变量为空

    2)创建手类
    定义属性:牌
    class hand: #创建手类
    def init(self): #定义构造函数
    self.pai="" #定义牌变量为空

    3)创建人类
    定义属性:左手和右手
    class Persion: #创建人类
    def init(self): #创建构造函数
    self.left_hand=None #定义左手变量为空
    self.right_hand=None #定义右手变量为空

    创建动作:交换
    def change(self): #创建函数
    c=self.left_hand #将变量c赋值为左手
    self.left_hand=self.right_hand #将变量左手赋值为变量右手
    self.right_hand=c #将变量c赋值为右手

    3.创建对象
    1)卡牌对象
    第一个牌对象(第一张牌)
    p1=pai() #创建牌类对象
    p1.colors="黑" #将color赋值为黑
    p1.nums="3" #将nums赋值为3

    第二个牌对象(第二张牌)
    p2=pai() #创建牌类对象
    p2.colors="黑" #将color赋值为黑
    p2.nums="4" #将nums赋值为4

    2)手类对象
    第一个手对象(第一只手)
    l=hand() #创建手类对象(左手)
    l.pai=p1.colors+p1.nums #将牌的变量赋值为牌类的变量花色和数字的拼接(l为对象,pai为类中定义的构造函数变量,l.pai就相当于self.pai,这里是讲类中的变量模板拿出来进行赋值,类里面的self.pai为空值,这里就是通过对象,将其调用进行具体赋值了,这里有两只手,就对类中的变量进行两次赋值,两次对象的赋值都是独立进行的,左手赋值会保持一个变量,右手赋值会再保持一个变量,这也是扩展性的一个体现,不需要更改类里面的模板,只需要通过创建对象就可以不断的扩展

    第二个手对象(第二只手)
    r=hand() #创建手类对象(右手)
    r.pai=p2.colors+p2.nums #将牌的变量赋值为牌类的变量花色和数字的拼接

    3)人类对象
    d1=Persion() #创建人类对象
    d1.right_hand=l #将右手赋值给手类(左手)对象
    d1.left_hand=r #将左手赋值给手类(右手)对象
    d1.change() #将左右手交换(调用交换函数)
    print(d1.left_hand.pai,d1.right_hand.pai) #打印左手和右手的牌

  • 相关阅读:
    WCF中的ServiceHost初始化两种方式(宿主)
    WCF实例上下文以及会话学习
    MSSQL有关时间函数知识(转)
    [转载红鱼儿]kbmmw 开发点滴:kbmMW缓存机制
    [转载红鱼儿]kbmmw 开发点滴:kbmMWEventService的本质
    [转载红鱼儿]kbmmw 开发点滴:ErrorTable用法
    [转载红鱼儿]kbmmw 开发点滴:kbmMW客户端提交事务的现场处理
    [转载红鱼儿]kbmmw 开发点滴:解决QueryService重复查询问题
    [转载红鱼儿]kbmmw 开发点滴:TkbmMWLock用法
    [转载红鱼儿]kbmmw 开发点滴:Authorization failed.
  • 原文地址:https://www.cnblogs.com/endmoon/p/9439496.html
Copyright © 2011-2022 走看看