当前位置: 首页 > news >正文

买了域名怎么建网站巴南区网站建设

买了域名怎么建网站,巴南区网站建设,东莞住房与城乡建设官网,东道设计属于什么档次关于类的设计——以植物大战僵尸为例 一、设计类需满足的三要素1. 类名2. 属性和方法 二、以植物大战僵尸的为例的类的设计1. 尝试分类2. 创建对象调用类的属性和方法*【代码二】*3. 僵尸的继承 三、代码实现 一、设计类需满足的三要素 1. 类名 类名:某类事物的名…

关于类的设计——以植物大战僵尸为例

  • 一、设计类需满足的三要素
    • 1. 类名
    • 2. 属性和方法
  • 二、以植物大战僵尸的为例的类的设计
    • 1. 尝试分类
    • 2. 创建对象调用类的属性和方法*【代码二】*
    • 3. 僵尸的继承
  • 三、代码实现

一、设计类需满足的三要素

1. 类名

  • 类名:某类事物的名称,一般按照驼峰命名法起名。

比如说描述学校内的人,可以分类为Teacher类,Student类等。

class Teacher#定义了一个教师类
class Student#定义了一个学生类

这一步,需要解决的事对你所要处理的范畴进行分类。

2. 属性和方法

  • 类的主体主要由属性和方法构成。就相当于一个事物(名词)可以拥有不同的属性(可以用名词或形容词来描绘它)。
  • 方法:这类事物具有什么样的行为(动词)。

以学生类为例:

class Student: #创建学生类clothes= "校服"               # 设置学生需要穿校服属性属于【类属性】def __init__(self,name,age): # 类的构造函数,用于初始化类的内部状态,为类的属性设置默认值self.name=name           # 定义name属性self.age=age             # 定义age属性,属于【对象属性】def Learn(self):             # 定义一个函数,为类的函数,称为方法;它至少有一个参数self# 创建Learn方法print(f"{self.age}岁的{self.name},要穿{self.clothes},正是喜欢学习的年纪!")Tom=Student("Tom",13) # Tom是Student类的对象,就是一个具体的学生。# 在这个过程中,赋予类的Tom对象对应的属性name为Tom,age为13。
Tom.Learn()          # Tom作为学生类的对象调用了学生类的Learn方法。

程序运行结果:
在这里插入图片描述

二、以植物大战僵尸的为例的类的设计

1. 尝试分类

请添加图片描述
明显,植物大战僵尸作为对抗类游戏,可以分为两个大类别。植物类和僵尸类(随着后续场景的元素加入,可能还会有场景类等,这些是可以逐渐完善的)
其实在最开始设计的时候,我只分了一个类别,因为我发现这六项事物都有名字和生命值这两个属性,是完全可以分成一个类的,但是在后续的设计中发现,虽然攻击性植物和僵尸都有攻击属性,但是它们的攻击动作(即方法)是不同。所以类别的区分是需要有度的。

对于图片中已经提供的这六个对象,可以分为两个大类,Plant类和Zombie类。并依次找这六个事物的共同特征技能,分别设置为对应的属性方法
在这里插入图片描述

根据表格,我选择将共有特征设为该类的属性,特殊技能设为该类的方法,方法是定义在类中的函数,这个在定义函数时设置对应的参数,后期具体的对象调用类的方法时,将实参传递到方法的形参中。

  • 定义Plant类,即植物的属性与方法*【代码一】*:
class Plant():def __init__(self,name,shengming):self.name=nameself.shengming=shengming#植物属性介绍print("{}的生命值是{}".format(self.name, self.shengming))def Create_sun(self,Create_sun,shake):self.Create_sun=Create_sunself.shake=shakeprint("{}的每分钟生产阳光是{},它会自己晃,速度为{}".format(self.name, self.Create_sun,self.shake))def shoot(self,color,velocity,kind):self.color=colorself.velocity=velocityself.kind=kindprint("{}的颜色是{},发射子弹速度为{},子弹头为{}".format(self.name, self.color, self.velocity,self.kind))

其中,

def Creat_sun(self,Creat_sun,shake):self.Creat_sun=Creat_sunself.shake=shake

表示的是创建了一个Plant类的Create_sun 生产阳光方式,该方式中有两个参数需要通过形式参数来传递具体的数值,如形式参数Create_sun,在后期具体赋值来传递该植物生产阳光的多少,后期不止是向日葵,多头向日葵也可以继承这个方法。

2. 创建对象调用类的属性和方法*【代码二】*

p1=Plant("向日葵",50) # 调用类的属性,形式参数与具体数值的位置一一对应
p1.Create_sun(50,6)  #调用类的方法,形式参数与具体数值的位置一一对应
print(" ") #单纯为了美观,打个空格p2=Plant("寒冰射手",200)
p2.shoot("blue","75","刺客坚冰")
print(" ")

此处设置了一个具体的对象p1和p2,对应的具体植物就是向日葵和寒冰射手。
【代码一】和【代码二】合起来运行结果如下:
在这里插入图片描述

3. 僵尸的继承

  • 定义Zombie类,即僵尸的属性与方法:
class Zombie():attack = "咬"move = "移动"def __init__(self,name,shengming):self.name=nameself.shengming=shengmingprint("{}的生命值是{},它有{}和{}的属性".format(self.name, self.shengming,self.attack,self.move))

设置一个具体的僵尸对象,调用这个属性给大家看看:

z1=Zombie("铁桶僵尸",1000)

运行结果:
在这里插入图片描述
因为,“咬”和“移动”是所有僵尸的属性,且跟name不同(每个植物僵尸都有名字,但名字是不一样的),所以这就是最开始所说的类属性,name放在__init__()函数内,属于对象属性。

其他的方法的建立就与植物的非常类似,在此处不赘述。后面有完整代码。
这里说说继承。我在完成跳跃僵尸的打印时,运用的类的继承。跳跃僵尸作为僵尸类的子类,可以继承Zombie的name,shengming,move,attack属性,同时在jumpZombie子类中添加新的jump方法,实现调用。

代码如下:

class jumpZombie(Zombie):  #这个jumpZombie子类的括号里放入类父类Zombie的名字def jump(self,jump):self.jump = jumpprint( "我是{},我能跳{}丈高".format(self.name,self.jump))Z2=jumpZombie("跳跃僵尸",1500)
Z2.own_weapon("竹竿")
Z2.other_attack("jump")
Z2.jump(8)

三、代码实现

总体的代码实现:

class Plant():def __init__(self,name,shengming):self.name=nameself.shengming=shengming#植物属性介绍print("{}的生命值是{}".format(self.name, self.shengming))def Create_sun(self,Create_sun,shake):self.Create_sun=Create_sunself.shake=shakeprint("{}的每分钟生产阳光是{},它会自己晃,速度为{}".format(self.name, self.Create_sun,self.shake))def shoot(self,color,velocity,kind):self.color=colorself.velocity=velocityself.kind=kindprint("{}的颜色是{},发射子弹速度为{},子弹头为{}".format(self.name, self.color, self.velocity,self.kind))class Zombie():attack = "咬"move = "移动"def __init__(self,name,shengming):self.name=nameself.shengming=shengmingprint("{}的生命值是{},它有{}和{}的属性".format(self.name, self.shengming,self.attack,self.move))def own_weapon(self,weapon):self.weapon= weaponprint("{}的武器是{}".format(self.name, self.weapon))def other_attack(self,other_attack):self.other_attack=other_attackprint("它的其他攻击方式为{}".format(self.other_attack))p1=Plant("向日葵",50)
p1.Create_sun(50,6)
print(" ")p2=Plant("寒冰射手",200)
p2.shoot("blue","75","刺客坚冰")
print(" ")z1=Zombie("铁桶僵尸",1000)
z1.own_weapon("铁桶")
print(" ")#跳跃僵尸要开始继承啦
class jumpZombie(Zombie):  #这个jumpZombie子类的括号里放入类父类Zombie的名字def jump(self,jump):self.jump = jumpprint( "我是{},我能跳{}丈高".format(self.name,self.jump))Z2=jumpZombie("跳跃僵尸",1500)
Z2.own_weapon("竹竿")
Z2.other_attack("jump")
Z2.jump(8)

运行结果为:
在这里插入图片描述
that’s all!

http://www.15wanjia.com/news/174554.html

相关文章:

  • 网站推广维护wifi域名是什么
  • 网站建设项目培训网站源码什么意思
  • 手机网站设计手机壳尺寸一览表机械做网站好处
  • 钦州网站网站建设织梦 更换网站图标
  • 做网站设计的都转行干啥了北京市建设工程信息网知名中项网
  • 一加手机官网网站百度百度
  • 揭阳网站制作平台百度做广告推广怎么样
  • 学校网站建设调查问卷攀枝花网站seo
  • 如何免费建购物网站建设优化网站
  • 排名网站优化培训wordpress筑爱网
  • 做网站需求文档有用织梦做的大网站吗
  • 信阳建设企业网站公司深圳全网推广小程序制作
  • wordpress地址和站点地址错网站开发与设计专业
  • 做网站模板用什么框架炫富做图网站
  • seo站长工具 论坛宜春建设局官方网站
  • 克拉玛依建设局网站泉州安溪县住房和城乡建设网站
  • 网站程序指的是什么自己做ppt网站吗
  • 微信分享按钮wordpress高级版兰州出台9条优化措施
  • 淘宝优惠券网站怎么做wordpress的背景图片
  • 做化妆品网站怎样盘锦做网站建设的
  • 禅城区做网站策划培训的网站建设
  • 专门做图表的网站wordpress页面导航
  • 廉洁广州在线网站建设帮企业建设网站销售
  • php网站后台管理模板广州做网站好的公司
  • 中企动力的网站开发语言网站模板如何删除
  • 苏州网站建设搭建tale博客和wordpress
  • 做外贸的经常浏览的三个网站安徽seo网络优化师
  • 做网站赤峰wordpress 地理定位
  • 徐家汇网站建沈阳建设工程信息网站
  • 知名网站制作公司排名电脑怎么下载网页视频