第二章windows应用程序_第1页
第二章windows应用程序_第2页
第二章windows应用程序_第3页
第二章windows应用程序_第4页
第二章windows应用程序_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章学习情境: Windows应用程序 2.1学习情景引入 2.2基本知识 1:类与对象2.3基本知识 2:命名空间2.4基本知识 3: C#窗体程序项目的各类文件2.5拓展:使用帮助2.1.1 项目需求 一些软件系统在初次运行时,都会显示一个友好的欢迎界面,来介绍软件的基本信息。本章我们将为书店管理系统设计一个欢迎界面。书店管理系统的欢迎界面应用程序,要求程序运行时在窗体界面上显示 “欢迎使用书店管理系统 ”,以及软件的开发团队和联系电话等基本信息。 2.1.2 项目展示书店管理系统欢迎界面应用程序的运行情况,如图 21所示。图 21 书店管理系统的欢迎界面2.1.3 技术分解 书店管理系统的欢迎界面程序是一个简单的 Windows窗体应用程序,也是一个较为完整的符合面向对象编程思想的应用程序。在这个简单的程序中包含了类及类的定义、对象的创建、命名空间引用等几乎所有的面向对象的基本概念和技术。通过此程序的设计,还可以体会在 VS2008中开发 Windows窗体应用程序的整个过程,并认识 C#窗体程序项目的各类文件。本章需要掌握的基本知识如下。 类与对象。 命名空间、 .NET Framework类库。 C#窗体程序项目的各类文件。 Windows窗体应用程序的创建过程。基本知识 1:类与对象 在客观世界中,每一个有明确意义和边界的事物都可以看作是一个对象( object),它是一种可以辨识的实体。对象充满着整个世界,任何具体的事物都是一个对象。例如,日常生活中我们要与不同的对象打交道,晚上我们睡觉的床是对象,面前的计算机是对象,家中的一本书是对象 一旦睁开你面向对象的双眼,你会发现对象无处不在!每个对象都有特定的外形和作用,以区别于其他对象。此外,我们每个人何尝不可以看作是一个对象呢?我们每个人都有自己的特点和个性:是单眼皮还是双眼皮,个子高大或者矮小,能跑,能跳 从上面的叙述中我们可以得出对象包含的两个基本要素:属性和行为。属性,指对象的静态特征,如人这个对象的身高、双眼皮等特征;行为,指对象的动态特征,如人这个对象的跑、跳。从面向对象的观点来看,把具有相似特征的事物归为一类,也就是把具有相同属性和行为的对象看成一个类(class)。比如,所有的人(你、我、他)归为 “人类 ”,则在书店管理系统中要把书店中所有的销售员(张三、王五 )归为 “销售员 ”类。在面向对象的程序分析和设计技术中, “类 ”是对具有相同属性和相同行为的一组相似对象的定义,它为属于该类的全部对象提供了统一的抽象描述。如上面的 “销售员”类,它定义了属性 “姓名 ”、 “工号 ”,还定义了行为 “销售方式 ”等。类是可用于产生对象的模板,对象是类的一个实例。如有了 “销售员 ”类,我们就可定义 “李四 ”销售员,由于 “李四 ”是基于 “销售员 ”类这个模板的,我们就知道了 “李四 ”销售员的属性和行为与 “销售员 ”类定义的是一样的,有 “姓名 ”属性、 “工号 ”属性、有行为 “销售方式 ”等。也就是说他的属性和行为与类是一致的,类中有的他也有,只不过在此已经具体化 属性 “姓名 ”是 “李四 ”,属性 “工号 ”是一个具体的数字,行为 “销售方式 ”是类中定义的。同时也提醒读者,他不可能有类中没有定义的其他属性和行为,在此 “李四 ”就是 “销售员 ”类的一个对象。2.2.1 类的定义在 C#中使用类之前需要先通过 class关键字定义一个类,形式如下。类修饰符 class 类名:基类 类体类定义的语法说明如下。class:为类声明的关键字。类修饰符:表示类的使用限制。类名:所定义的类的名称。基类:表示所继承的基类名。类体:用于定义该类的成员。 类的修饰符可以是以下几种之一或者它们的组合,但同一修 饰符不允许出现多次。最常用的类修饰符如下。 public:这是一个访问修饰符,表示该类可以在任何地方被访问,比如在别的命名空间中、在别的类中使用该类。 private:这也是一个访问修饰符,表示该类不可以在类的外部被访问,这会使类变得没什么用处,所以 private修饰符的类很罕见。 partial:表示分部类型定义,可以将类的定义拆分到两个或多个源文件中,每个源文件包含类定义的一部分,编译应用程序时将把所有部分组合起来。类修饰符还可以是 internal、 abstract、 sealed、 new、 private、 protected等,有兴趣的同学可以自学。 下面我们来看一个 Windows应用程序中对 Form1类的定义。namespace HelloWorld public partial class Form1 : Form 代码定义了一个名为 Form1的类,其修饰符为public,表示该类可以在任何地方被访问。 Form类是 Form1类的基类,说明我们定义的 Form1类继承自 Form类。继承是类的一个重要特征,继承后,父类的所有字段和方法都将存在于子类中,每一个子类都具有父类非私有的特性。这就像人类和动物类的关系,动物类是父类,人类是子类,人类具有动物类的特性。 有时需要子类对从父类继承来的属性和行为进行改变,这称为 “多态性 ”。2.2.2 类的成员构成及其访问修饰符1类的成员构成类的成员包含在类中声明的成员和从该类的基类继承的成员。类的常见成员如下。 成员常量:代表了与类相关的常数。 字段:类的变量。 成员方法:实现了类的动作行为。 属性:用于定义类中的值,并对其进行读写。 事件:用于说明类中发生了什么事情。 构造函数:执行需要对类的实例进行初始化的操作,比如根据 Salesperson类的定义构造一个 salesperson1的对象。有的类成员代表了类的属性,有的则代表了类的行为。因此,类的成员可以分为数据成员和函数成员两类,其中常量、字段(变量)、事件是类的数据成员;方法、属性、构造函数是类的函数成员。2类成员的访问修饰符 在对类成员进行声明时,可以使用不同的类成员访问修饰符,来控制类成员的访问性,并定义成员的访问级别。在 C#中支持 5种访问限制修饰符。 public修饰符:直观含义是 “公共的 ”、 “访问不受限制的 ”,所修饰的成员可以在类的外部进行访问,有 public修饰符的成员称为公共成员。 protected修饰符:为了方便派生类的访问,但又不希望其他无关类访问,这时可以使用 protected修饰符,将成员声明为保护的,所修饰的成员称为保护成员。 private修饰符:它的含义是 “访问范围限定于它所属的类型 ”,有 private修饰符的成员为私有成员,私有成员只有类中的成员才能访问,类的外部不能对其访问;在类中如果类的成员声明没有访问修饰符,按照默认方式该成员为私有成员。 internal修饰符:在类或同一个程序中的类能够访问,所修饰的成员称为内部成员。 protected internal修饰符:在类、派生类或同一个程序中的类能够访问,所修饰的成员称为保护的内部成员。 除了 public修饰符之外,其余 4种修饰符都或多或少地限制了类成员的可访问性,这体现了类的一个重要特征 封装性。封装性是指将数据和代码包装在一个单独的单元中,避免外界的干扰和不确定性。将数据封装起来,就可以尽可能地对外隐藏细节,只对外公布一个有限的界面,通过这个界面和其他对象交互。如日常生活中的手机,我们使用手机打电话、发短信只是通过手机的屏幕和按键而已,对其内部的机制并不了解,这说明设计者已经将所有功能的实现细节全部封装,留给用户的仅仅是简单易用的屏幕和按键。2.2.3 创建对象 类是对象的模板,对象则是类的一个实例。定义类以后就可以创建那个类的对象。 对象创建的一般形式如下。 类名 对象名; 对象名 =new 类构造函数; 或者: 类名 对象名 =new 类构造函数; 类名:要创建对象的那个类的名。 类构造函数:要创建对象的那个类的构造函数。例如,下面的语句用类 Form创建对象myForm。Form myForm;myForm=new Form ( );或者Form myForm = new Form ( );书写代码时,类名 Form采用 Pascal命名规则,实例名作为局部变量采用 camel命名规则。 注: Pascal命名规则 标识符首字母大写,多词标识符的每单词首字母大写,如HelloWorld,一般用于命名空间名、类名、方法名、属性名等。 camel命名规则:标识符首字母小写,多词标识符每单词首字母大写,如 bookName,一般用于字段名、局部变量名等。2.2.4 书店管理系统欢迎界面应用程序 用 Visual Studio.NET 2008进行窗体应用程序的开发主要有两部分的工作,即设计用户界面和编写程序代码。 用户界面负责管理用户与计算机之间的交互,从用户处获得数据,并向用户显示数据,它构筑了程序设计的基础。良好的用户界面设计可以提高程序的简洁性、易用性。图 22所示为在进行用户界面的设计,在开发过程中所设计的用户界面,与程序运行时的界面基本相同。 【 例 2-1】 实现书店管理系统欢迎界面应用程序。 启动 VS2008,创建 Windows应用程序建立一个 C#项目,如图 22所示。图 22 程序创建界面 系统会自动创建一个窗体 Form1,如图所示。图 23 系统生成 Form1图 2 3 系统生成 从 “工具箱 ”中的 “所有 Windows窗体 ”中连续拖曳 3个 Label控件放在一个窗体中,然后借助拖曳及布局栏来合理布局 3个 Label控件使之美观。如选中 Label1并单击布局栏中的水平居中图标,则Label1水平居中,如图 24所示。 选中控件 Label2,右键单击并在快捷菜单中单击 “属性 ”,属性面板将在右边显示,更改 “Text”属性为 “开发:山东信息职业技术学院信息工程系 ”。同样方法,选中 Label3进行上述处理,更改 “Text”属性为 “联系电话:,如图 25所示。 单击窗体 Form1,按 F4键进入属性面板,修改窗体 Form1的 Name属性为 “欢迎使用书店管理系统 ”。 按 F7键进入程序代码编辑区,在代码“InitializeComponent();”后编写 “label1.Text = “欢迎使用书店管理系统 “;”。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace HelloWorld public partial class Form1 : Form public Form1() InitializeComponent(); label1.Text = “欢迎使用书店管理系统 “; 按 F5键启用调试程序,结果如图 26所示。在开发过程中所设计的用户界面,与程序运行时的界面基本相同。 图 26 Windows窗体应用程序的界面设计2.2.5 自测思考题( 1)定义类的语法格式。( 2)类的各种修饰符的含义。( 3)类的成员构成,以及类成员访问修饰符的含义。基本知识 2:命名空间在 【 例 21】 应用程序代码中的最上面部分,我们会发现有类似这样的语句: “using System;”、 “using System.Data;”、 “using System.Windows.Forms;”等。在这些语句下面,是一个以 namespace起始的代码块,这就是本节要介绍的命名空间。 1命名空间 先来想一个问题,在一个大型项目中,有很多人同时开发,不同的开发人员定义了相同名称的类,那么应该如何区分这些类呢? 为了解决同名称的区分问题, C#中提供了一种叫做命名空间的方式来区分众多相同名称的类。命名空间的结构和文件系统差不多,命名空间相当于文件系统中的文件夹,而类则相当于文件系统中的文件。要唯一标识一个类,只需把它的命名空间逐一给出即可,其形式为: “命名空间名点操作符类名”。例如,要引用 HelloWorld命名空间中的 Form1类,就需要这样写:HelloWorld. Form1。 但是完全通过命名空间来指定一个类是一件非常烦琐的事情,尤其是在命名空间有很多层次的情况下,会增加不少编码工作量。为了减少由于使用过长命名空间路径带来的工作量并降低代码复杂度, C#提供了一种引用命名空间的概念。开发人员可以通过 using语句来引入需要使用的命名空间,然后通过简单的相对路径来使用命名空间中的类。如 HelloWorld程序中出现的 “using System;”语句,就是将 System命名空间引入到程序中。如果要引用该命名空间里面的类 Array,就可以直接写 Array,而不需要用 Sys

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论