项目:贪吃蛇游戏设计工作任务一:系统设计(system design) 工作任务

Download Report

Transcript 项目:贪吃蛇游戏设计工作任务一:系统设计(system design) 工作任务

项目:贪吃蛇游戏设计
常州工程职业技术学院 计算机技术系
项目:贪吃蛇游戏设计
今日工作
www.czie.net
1
任务一:需求分析,系统概要设计
a
需求分析,系统概要设计
b
3
类设计
c
4
用类编程
2
工作汇报、互评
3
工作小结
4
任务布置
结束
《WinForm项目开发》
项目:贪吃蛇游戏设计
需求分析,系统概要设计
www.czie.net
各项目组汇报预设计、提出问题
互评、点评
问题解决
进一步解读系统需求
《WinForm项目开发》
项目:贪吃蛇游戏设计
需求分析,系统概要设计
www.czie.net
项目功能描述
 主窗体布局
1
2
3
5
4
《WinForm项目开发》
项目:贪吃蛇游戏设计
需求分析,系统概要设计
www.czie.net
项目的总体结构
–Start类是顶层类,它主要调
用Floor类来显示场地,另外
还要使用Speed类和PubClass
类;
–Floor类调用Snake类和Bean
类在场地上显示蛇和豆;
–Snake类调用Block类来组成
蛇。
–从上知要用到多个类,如何设计类?怎么用类呢?
《WinForm项目开发》
项目:贪吃蛇游戏设计
类设计
www.czie.net
各项目组汇报预设计、提出问题
互评、点评
问题解决
进一步解读系统需求
《WinForm项目开发》
项目:贪吃蛇游戏设计
类设计
www.czie.net
一、类的基本概念
1、类和对象
对象(实体)
(分)类
男人、女人、高人、矮人、胖人
人
狗、猫、兔、鸡、狼
动物
台式电脑、笔记本电脑、服务器
电脑
抽象化
对象
类
具体化
《WinForm项目开发》
项目:贪吃蛇游戏设计
类设计
www.czie.net
2、类的特征数据:用字段表示(变量)
– 如人:年龄、名字和身高等;
– 动物:毛的颜色、腿的数量和跑的速度等;
– 电脑:CPU型号、CPU品牌、内存容量等。
3、类的行为:用方法表示
– 如人:能走路、干活等;
– 动物:能跑、找食等;
– 电脑:能帮助我们处理事务、计算表达式的值
《WinForm项目开发》
项目:贪吃蛇游戏设计
类设计
www.czie.net
类的成员:类的字段和方法
类是对象的模板,定义类的目的是为了描述具体的
对象。
实例:设计汽车类(Car)
《WinForm项目开发》
项目:贪吃蛇游戏设计
类设计
www.czie.net
程序解读
⑴类定义
class 类名
– {
–
类体(类成员)
– }
⑵类成员的访问属性private和public
 private(私有)成员:只能在定义它的类中被
访问,在定义它的类外不能被访问。
 public(公共)成员:既可以在定义它的类中被
访问,也在定义它的类外被访问。
 注意:private 是默认的。
《WinForm项目开发》
项目:贪吃蛇游戏设计
类设计
www.czie.net
⑶字段
 类中的字段实际上是变量,因此字段的定义与变量
定义相同,形式如下:
 数据的访问说明符 数据类型 字段名
⑷方法
 小汽车能启动也能停下来,所以分别用Start方法
和Stop方法模汽车的起动和停止。
《WinForm项目开发》
项目:贪吃蛇游戏设计
类设计
www.czie.net
–⑸创建对象
 分两步:
–①声明对象
– 类名 对象名;
– 如:Car myCar;
–②对象实例化
– 对象名=new 类名();
– 如:myCar=new Car();
 由类创建了对象后,每一个对象都有了类中的所
有非静态成员,即对象myCar具有了wheels、tra
demark、maxspeed字段和Start和Stop方法。
《WinForm项目开发》
项目:贪吃蛇游戏设计
类设计
www.czie.net
–上面创建类对象的两步可以合并成一步:
–类名 对象名=new类名();
–如:Car myCar=new Car();
–⑹类成员的访问
 在类的作用域内即在类的内部,成员可以由类的所
有方法直接访问,并可用它的名字进行引用。
 在类的作用域外即在类的外部,对象成员的存取必
须通过该类或该类的对象和点操作符(类成员存取
操作符)来存取。
 对象的成员存取方式如下:
 对象.成员名
《WinForm项目开发》
项目:贪吃蛇游戏设计
类设计
www.czie.net
从上例大家可以看到 , Main方法被放在了
Car类中,所以可以访问所有的字段。一般我们
不把Main方法放在具体的类中,要单独设计一个
类来放Main方法,如此,上述汽车类代码可做如
下修正,会出现什么情况呢?
且面向对象程序设计的特性之一是隐藏数据,
从而避免无意的错误操作,保证类的完整性。
如何访问类中数据?
《WinForm项目开发》
项目:贪吃蛇游戏设计
类设计
www.czie.net
3、属性
–属性主要是用来访问字段的,它有访问器。
这些访问器用来读取或写入字段值,也可以
对字段和属性进行计算,然后将计算结果给
相应的字段。
–属性也需要声明,格式如下:
类型 属性名
{
访问器声明
}
《WinForm项目开发》
项目:贪吃蛇游戏设计
类设计
www.czie.net
属性的访问器:
– 1)get访问器
 通过get访问器读取字段值。
 它必须返回一个属性类型的值。
 在get访问器中最简单的是返回字段的值。
– 2)set访问器
 通过set访问器给字段赋值。
 set访问器具有单个属性类型值参数,这个属性类型值参数
是隐含的名为value的参数。
 在set访问器中最简单的是把value值赋给字段。
《WinForm项目开发》
项目:贪吃蛇游戏设计
类设计
www.czie.net
如:private int wheels;//私有字段:轮子个数
public int Wheels//访问wheels的属性
{
get
{
return wheels;
}
set
{
wheels=value;
}
}
《WinForm项目开发》
项目:贪吃蛇游戏设计
类设计
www.czie.net
根据类中属性的实际需要,把属性分成下面几种:
– 1)读写属性:包括get和set两个访问器,既能
读取属性值,也能向属性写入。
–2)只读属性:只包括get访问器,即只能读
取属性值。
–3)只写属性:只包括set访问器,即只能向
属性写入。
《WinForm项目开发》
项目:贪吃蛇游戏设计
类设计
www.czie.net
在Main方法中有一语句“myCar=new Car();”
功能是实例化对象,现在把这句屏蔽掉,再运行
程序 ,有什么现象呢?
Car()是什么呢?
《WinForm项目开发》
项目:贪吃蛇游戏设计
类设计
www.czie.net
4、实例构造函数
–1.构造函数
–构造函数是与类同名的特殊方法成员。它
是用来初始化类实例成员的。
–构造函数是与类同名的特殊方法成员。它
是用来初始化类实例成员的。
构造函数名(可选形参表)
{
方法体
}
《WinForm项目开发》
项目:贪吃蛇游戏设计
类设计
www.czie.net
2.默认构造函数
–在C#中,如果类不包括任何实例构造函数声明,则
自动提供一个默认的无参数实例构造函数。
–如:myCar=new Car();中的Car(),它是默认的
构造函数,形式如下:
–
–
public Car()
{ }
–并使用默认值初始化对象字段。
–默认:数值类型为0,bool为false,引用为null
《WinForm项目开发》
项目:贪吃蛇游戏设计
类设计
www.czie.net
⒊实例构造函数重载
– 定义:当类定义中含有两个以上其参数个数或类型或种类不
同的实例构造函数时,称为实例构造函数重载。
– 如例
⒋程序解读
– 1)程序中两种构造函数比较
– 程序中添加了两个类的构造函数,一个是空构造函数;一个
是带参数的构造函数。
 ⑴空构造函数
《WinForm项目开发》
项目:贪吃蛇游戏设计
类设计
www.czie.net
–public Car()//空构造函数
–
{ }
–⑵带参数的构造函数
 public Car( string tr, int wh,float mas)
 {
trademark = tr;
wheels = wh;
maxspeed = mas;
}
《WinForm项目开发》
项目:贪吃蛇游戏设计
类设计
www.czie.net
–2)程序中两种实例化对象比较
 ⑴用空构造函数实例化对象
 由于用此创建的对象不是具体的,还得对字段赋值后
才能使用。
myCar1 = new Car();//实例化对象




myCar1.Wheels = 4;
myCar1.Maxspeed = 230;
myCar1.Trademark = "宝马";//给字段赋值
output = myCar1.car_message();
《WinForm项目开发》
项目:贪吃蛇游戏设计
类设计
www.czie.net
 ⑵用带参数的构造函数实例化对象
 由于用此创建的对象是具体对象,所以可以直接使
用

myCar2 = new Car("红旗",4,180);//实例化对
象

output = myCar2.car_message();
《WinForm项目开发》
项目:贪吃蛇游戏设计
用类编程
www.czie.net
各项目组汇报预设计、提出问题
互评、点评
问题解决
进一步解读系统需求
《WinForm项目开发》
项目:贪吃蛇游戏设计
用类编程
www.czie.net
1、设计一个书类,它有三个字段书名(BookNa
me)、单价(Price)和购书数据(Number),
一个计算购书款的方法(TotalPrice),并测试
设计的类。
可能出现问题:
A、 TotalPrice方法
B、类的使用
创建对象;给字段赋值;调用方法
《WinForm项目开发》
项目:贪吃蛇游戏设计
用类编程
www.czie.net
2、设计一个人类(Person),定义必要的字段和
属性,定义一个输出人的信息的方法,定义一个
空构造函数和一个非空构造函数,并测试它。
《WinForm项目开发》
项目:贪吃蛇游戏设计
用类编程
www.czie.net
可能出现的问题:
A、字段
类的特征数据很多,设计类时要把与处理有关系的
特征数据设计成字段
B、属性
读写字段内容,一般有什么字段就设计一个相对应的属
性,
《WinForm项目开发》
项目:贪吃蛇游戏设计
用类编写
www.czie.net
C、构造函数
构造函数的功能是初始化字段,通过传来的值,给
字段赋值。
《WinForm项目开发》
项目:贪吃蛇游戏设计
工作小结
www.czie.net
1、 分析项目的需求、总体结构
 2、 设计和使用类的字段
 3、 设计和使用类的属性;
 4、 设计和使用类的方法。
 5、设计和使用类的构造函数
《WinForm项目开发》
项目:贪吃蛇游戏设计
任务布置
www.czie.net
1.课下进一步修改和扩展项目;把电子稿上传;
2.完成本任务的小结;
3.以小组为单位预设计项目的工作任务二豆类设
计和工作任务三块类设计。
《WinForm项目开发》