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