




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、教 案 首 页第 1 次课 授课时间:课程名称可视化程序设计年 级大二下专业层次信息及计算教师付勇智专业技术职务讲 师学 时2授课题目(章、节)第一章 Windows可视化程序设计方法基本教材参考用书Microsoft C# Windows程序设计(上下册)Charles Petzold著天宏工作室译北京大学出版社教学目的及要求:1本章学习目的及要求:学习应用程序用户交互方式的主要类别,掌握可视化程序设计的基本概念方法和工具的使用,了解可视化程序设计技术的主要方法和发展历史,大体明白Microsoft 平台的架构组成以其各组成组件之间的彼此关系;初步掌握Microsoft Visual Stu
2、dio开发环境的使用方法。2本节学习目的及要求:在理解可视化程序设计技术的方法及工具的基础上,重点掌握应用Microsoft Visual Studio开发环境编写可视化应用程序的方法。教学内容及时间安排,教学方法:1教学内容及时间安排可视化程序设计概念(10min)桌面应用程序的开发方法(5min)Windows平台应用程序开发技术(5min)Microsoft 程序开发技术(40min)(5)Visual Studio 使用基础(30min)2教学方法:讲授法、问答法、讨论法和演示法。教学重点、难点:在本节课的教学内容中,Visual Studio 使用方法和项目管理组织形式为教学重点;M
3、icrosoft 程序开发技术及平台的组成及工作原理为本节课的难点。授课方法及手段:在授课过程中以讲授法为主,辅助于问答法、讨论法和演示法。基本理论讲授采用讲授法和演示法进行,课堂知识的巩固采用讨论法进行,本节教学测量采用问答法进行。为了增加单位课时的信息量,应用多媒体技术组织教学过程;为了保证学生对所学内容的实际掌握能力,应当在介绍相关概念和理解后,通过多媒体及时演示在Visual Studio开发环境中管理项目和编写控制台应用程序以及可视化应用程序的步骤和过程。第 296 页教 案 续 页基本内容(讲稿)备注第一章 Windows可视化程序设计方法1.可视化程序设计概念应用程序的类别:控制
4、台应用程序(Console App):传统的字符环境应用程序,用户通过键盘和显示器文字输出交互(总体过时)(STDIO)桌面应用程序(Desktop App):程序主要以窗体、按钮、菜单、对话框、滚动条等组成,用户通过鼠标、键盘进行所见即所得的方式及系统交互(桌面应用主流)(SDK、OWL、MFC、WinForm)Web应用程序(Web App):用户通过浏览器(IE、Firefox)访问网页的方式同远端服务器进行交互(网络应用主流)(ASP、JSP/Serverlet、PHP)多媒体应用程序(Multimedia App):用户通过视频、音频的方式,更加直观的同系统交互(电脑游戏)(Dire
5、ctx、OpenGL)2.桌面应用程序的开发方法桌面应用程序的开发通常是在传统语言程序设计方法的基础上,针对不同操作系统扩展对应的窗口函数库来进行。Windows App = Language + Function(SDK)当前主流平台:WindowsUnix XWindowMacOS3.Windows平台应用程序开发技术C + Windows SDK (1985-2000)C+ + MFC (1993-2002)Delphi + OWL/VCL (1992-2004)C+ + OWL/VCL (1994-2001)Basic + Runtime (1992-2001)Java + Swing
6、 (1996-?)ASM + LIB (非主流)C# + (2001-?)Basic + (2001-?)4.Microsoft 程序开发技术的组成:CLR+CTSCLR公共语言运行时(Common Language Runtime):C#、VB、VC+ Managed编写的程序经过编译后所生成的.exe文件并不是底层CPU能够执行的机器语言代码,而是一种中间语言MSIL的代码格式(类似Java中的ByteCode)MSIL的代码在执行前经过Just-In-Time即时编译转换成目标平台的机器语言并执行,完成这一工作的就是CLR。CLR实际就类似Java的虚拟机,在不同CPU结构的机器上只要具
7、备CLR,就能运行程序,这样就实现了平台的无关性。中将各种系统功能调用封装为一个庞大的面向对象的类库CTS公用类别系统(Common Type System)CTS采用类似Java的Namespace(命名空间)的层次式机制来组织整个类库根据所编写应用程序的类别不同,所调用的类库也不相同编写本课程中的Windows Forms桌面应用程序主要用到CTS中三个命名空间下的系统类:System基本的系统对象,如字符串处理、数学函数等System.Drawing主要的图形处理函数System.Windows.Forms用户控件,如窗体、按钮、对话框在编写程序的过程中,通常需要对以上三个命名空间及其对
8、应的动态链接库进行引用,具体方法稍后介绍C#程序编译运行的过程 CLR 平台的虚拟机Microsoft Framework要运行程序,则需要有CRL和CTS,这两者的总体就叫做Microsoft Framework(框架类库)Windows操作系统从Windows XP开始把框架类库作为操作系统的一个组成部分进行发布。开发所使用的框架类库版本必须和运行环境所装Framework版本相同,高版本并不兼容低版本。同一操作系统可以同时安装多个版本的框架类库Microsoft提供了一个简化的Framework版本,以支持智能设备运用程序的开发,称为 Compact Framwork,主要运行在Wind
9、ows CE和Windows Mobile平台上Windows/VisualStudio/Framework版本对应表Visual Studio版本 Framework 版本最低Windows版本Visual Studio V1.0WindowsXPVisual Studio 2003 V1.1WindowsXP SP2Visual Studio 2005 V2.0Windows VistaVisual Studio 2008 V3.5Windows Server 2008Windows 7Visual Studio 2010 V4.0 Visual Studio 2012 V4.5
10、Windows 8Visual Studio 使用基础Visual Studio项目组织方式:VS中最高层的项目组织单位是:解决方案(Solution),一个解决方案对应多个程序专项(Project)。解决方案文件以.sln结尾。专项(Project)是VS中的基本管理单元,是编译的主体。VS中一个专项通常由单一语言编写的多个源程序模块组成,编译后对应生成一个可执行程序(.exe)或动态链接库模块(.dll)。C#的程序专项文件以.csproj结尾,VB的专项以.vbproj结尾。源程序文件(Code File)是程序员所编写的代码,在C#中,源程序文件以.cs结尾,通常一个源程序文件对应一个
11、class的定义。解决方案的创建方法1 (创建空解决方案)File->New->ProjectOther Project Types -> Visual Studio Solutions -> Blank Solultion方法2 (创建专项同时建立解决方案) 程序专项的创建新建空白专项File->New->ProjectVisual C# -> Windows -> Empty Project添加对dll库文件的引用右键点击专项之下的References,选择Add References按住Ctrl键,同时选中System.dll,System
12、.Drawing.dll,System.Windows.Froms.dll,并确认。源程序文件的创建右键点击专项,选择Add->Add New Item选择Code File类型,并为所创建源程序文件命名Hello World C#版C语言版#include <stdio.h>void main()printf(“Hello World!n”);C#版using System;class HelloWorldpublic static void Main()Console.WriteLine(“Hello World!”);Hello World C# Windows版usi
13、ng System;using System.Windows.Forms;class HelloWorldWinpublic static void Main()MessageBox.Show(“Hello World!”); 操作过程步骤1. 创建Solution步骤2. 创建Project步骤3. 设置对类库.dll的引用步骤4. 创建程序文件.cs步骤5. 编写代码步骤6. 编译生成.exe步骤7. 执行程序教 案 末 页小结本节主要教学内容:可视化程序设计概念桌面应用程序的开发方法Windows平台应用程序开发技术Microsoft 程序开发技术(5)Visual Studio 使用基
14、础Windows平台可视化程序设计技术:本门课程介绍使用C#语言在环境下调用Windows Forms相关组件,开发基于Windows操作系统下的桌面应用程序的方法及工具。复习思考题及作业题实验一目的:熟悉Visual Studio 2008 的操作任务:编写C#程序,分别以命令行和提示框的方式输出你的姓名及学号撰写实验报告课后作业预习面向对象程序设计的基本概念并对以下名词进行解释:类、对象、封装属性、方法、构造函数函数重载(Function Overloading)继承虚函数(Virtual Function)教 案 首 页第 2 次课 授课时间: 课程名称可视化程序设计年 级大二下专业层次
15、信息及计算教师付勇智专业技术职务讲 师学 时2授课题目(章、节)第二章 面向对象程序设计基础(面向对象初步)基本教材参考用书Microsoft C# Windows程序设计(上下册)Charles Petzold著 天宏工作室译 北京大学出版社教学目的及要求:1本章学习目的及要求:学习面向对象程序设计的基本概念及方法;掌握类及对象的关系,类的数据成员及方法成员,类成员的修饰词的使用方法;类的实例化过程,类的属性及在存取独立控制中的应用。2本节学习目的及要求:在分析结构化程序设计方法和面向对象程序设计方法异同点的基础上,重点掌握类、对象、字段、方法、属性等相关概念及其应用。教学内容及时间安排,教
16、学方法:1教学内容及时间安排高级程序设计语言的发展(5min)结构化程序设计要点回顾(5min)结构化程序设计不足点分析及其解决方法分析(20min)面向对象程序设计及结构化程序设计的关系(10min)(5)类及对象的概念(10min)(6)类的定义、类的成员及其存取权限(25min)(7)类的属性及其应用(15min)2教学方法:讲授法、问答法、讨论法和演示法。教学重点、难点:在本节课的教学内容中,类和对象的概念以及类的组成成员为教学重点;面向对象程序设计的主要思想及三大特点为本节课的难点。授课方法及手段:在授课过程中以讲授法为主,辅助于问答法、讨论法和演示法。基本理论讲授采用讲授法和演示法
17、进行,课堂知识的巩固采用讨论法进行,本节教学测量采用问答法进行。为了增加单位课时的信息量,应用多媒体技术组织教学过程。为了保证学生对所学内容的实际掌握能力,应当在介绍相关概念和理解后,通过实例程序的演示加深学生对面向对象程序设计相关概念的理解。教 案 续 页基本内容(讲稿)备注第二章 面向对象程序设计基础1.编程语言的发展结构化程序设计语言特点:以函数为整个程序的总体组织结构变量+语句+函数库例如:C、Basic、Pascal、Fortran、Algo等。面向对象程序设计语言特点:以类作为程序的基本结构单元类、对象、类成员、类库例如:Smalltalk、C+、Java、C#、VB、Object
18、ive-C等2.结构化程序设计要点回顾程序中主要采用:顺序结构、选择结构、循环结构三种基本结构方式。程序的处理对象是变量:包括整型、浮点型、双经度浮点数、字符型、指针型、结构体、枚举类型等较为初级的数据形式,数据间彼此独立,关联性小。函数是程序的主要功能单元和组织单元。缺点:随着解决问题的复杂和程序规模的增长,变量数目和函数数目大幅度增加,造成程序代码难以管理,容易出错,以及调试困难。3.结构化程序设计不足点分析及其解决方法分析封装性:将程序中涉及到的变量,根据彼此的相关程度封装在一起,把对这些数据的操作也同时封闭在一起,在封闭的实体内部函数可以自由的对属于本实体的数据变量进行操作,除非特别允
19、许,其他实体外部的函数一般不允许对本实体内的数据进行访问,从而降低误操作发生的可能性。继承性:可以在原有实体基础上进行扩展,得到新的实体,新实体具有原实体的所有特点,同时又增加了新的特点。例如:医院的病人体检信息管理系统中,有管理所有病人基础信息的实体(所有病人都具有的数据),同时在此基础上又可以派生出男病人和女病人不同的专门体检科目数据,继续往下还可以针对男女病人分为35岁以上和35岁以下的不同体检科目分别进行处理。多态性:不同的类型的实体,只要他们满足相同的接口,都能够接入到系统中,不用修改代码就能够直接适应和调用不同的实体完成相关操作。例如:不管的白炙灯还是节能灯、不管是8W、15W、还
20、是60W,不管是发白光、红光,还是绿光,只要灯头的接口规格一致,都能连接到同一个灯座上,并发光。同样道理,水龙头也是一个很好的说明多态性的例子。4.面向对象程序设计及结构化程序设计的关系面向对象程序设计是解决大规模程序设计问题的一种方法,是结构化程序设计技术的发展和在更高层次的演化。面向对象程序设计技术和结构化程序设计在程序设计过程中同时存在,只是所处的层次不同,结构化程序设计方法处理比较细节的问题,而面向对象方法处理更高抽象层次的问题实体。在面向对象技术中,类的各成员函数还是以结构化的方式实现的。两种方法的关注点不同:结构化的关注点是函数过程;面向对象关注的是对象的数据及其上的操作,抽象程度
21、更高。5.类及对象的概念把握面向对象编程的最核心概念从类及对象开始什么是类?什么是对象?这两者有何差别?为什么理解这两个概念的差别至关重要?类是一个模板或蓝图对象根据模板创建出来,它拥有模板所定义的所有特性,但不同的对象其相同特性的取值可以不相同VS的类库浏览系统Visual Studio 中提供了一个很方便的查询浏览类库结构及其组成的工具Object Browser(对象浏览器),通过点击菜单ViewèObject Browser就可以打开对象浏览器,对类库中组成的各个类的成员字段和方法进行浏览。6.类的定义、类的成员及其存取权限类的定义C#使用class关键字定义一个类。publ
22、ic class MyClass public int PublicField= 0; private int PrivateField= 0; public void PrintValue() 类的成员变量ßçèà字段(field)n函数ßçèà方法(method)字段和方法统称为类的“成员(member)”类成员的存取权限三种最基本的数据存取权限:1 public:公有,外界可自由访问2 private:私有,仅自身的方法可以访问3 protected:保护,自身或者派生类可以访问开发建议:仅有需要被外界访问的
23、成员才设置为public的。类的使用方法/创建对象MyClass obj= new MyClass();/通过对象变量访问公有字段obj.PublicField= 100;/X,不允许直接访问类私有成员obj.PrivateField= 200;/通过对象变量访问公有方法obj.PrintValue(); “类”小结从MyClass示例中可以知道类的定义和使用方法:(1)用new关键字创建“类的实例(即对象)”(2)用“类”类型的变量(称为“对象变量”)来保存对创建出来的对象的引用;(3)通过对象变量来访问对象的公有成员(包括方法及字段)7.类的另一种成员“属性”属性字段+get/set方法属
24、性的要点当读取属性值时,get方法被调用当向属性赋值时,set方法被调用定义一个“属性”的步骤定义一个私有字段用于存储属性数据。设计一个get方法,当读取属性值时,向外界返回私有字段的当前值。设计一个set方法,当向属性赋值时,其自动隐含的value参数保存外界传入的值,应将此值传给前面定义的私有字段。教 案 末 页小结本节主要教学内容:高级程序设计语言的发展结构化程序设计要点回顾结构化程序设计不足点分析及其解决方法分析面向对象程序设计及结构化程序设计的关系(5)类及对象的概念(6)类的定义、类的成员及其存取权限(7)类的属性及其应用复习思考题及作业题实验三设计一个Student类,包容一个字
25、段Name(学生姓名)和一个属性Score(考试成绩)。n编写示例代码:(1)程序运行时,要求用户输入姓名和考试成绩(2)程序输出:XXX,你通过(或没通过)了考试(成绩大于等于60分)或XXX,你挂科了(成绩小于60分)。或XXX,你输入的成绩有误(输入数据超出范围)。n要点:有效的成绩为 0,100教 案 首 页第 3 次课 授课时间: 课程名称可视化程序设计年 级大二下专业层次信息及计算教师付勇智专业技术职务讲 师学 时2授课题目(章、节)第二章 面向对象程序设计基础(续)基本教材参考用书Microsoft C# Windows程序设计(上下册)Charles Petzold著 天宏工作
26、室译 北京大学出版社教学目的及要求:1本章学习目的及要求:继续学习面向对象程序设计的相关概念及方法;掌握构造函数、函数重载的概念;详细理解C#语言两种不同存储类型的使用;深入理解类的成员属性及静态属性的差异,并掌握其使用条件。2本节学习目的及要求:在掌握面向对象程序设计基本概念的基础上,重点掌握构造函数、函数重载、值类型、引用类型、类的成员属性及静态属性等相关概念及其应用。教学内容及时间安排,教学方法:1教学内容及时间安排(1)对象的创建构造函数(15min)(2)什么叫函数重载(Overload)?(20min)(3)两种不同的内存类型(Type)(20min)(4)奇特的关键字:this(
27、25min)(5)类的“实例成员”及“静态成员”(20min)2教学方法:讲授法、问答法、讨论法和演示法。教学重点、难点:在本节课的教学内容中,类和对象的概念以及类的组成成员为教学重点;面向对象程序设计的主要思想及三大特点为本节课的难点。授课方法及手段:在授课过程中以讲授法为主,辅助于问答法、讨论法和演示法。基本理论讲授采用讲授法和演示法进行,课堂知识的巩固采用讨论法进行,本节教学测量采用问答法进行。为了增加单位课时的信息量,应用多媒体技术组织教学过程。为了保证学生对所学内容的实际掌握能力,应当在介绍相关概念和理解后,通过实例程序的演示加深学生对面向对象程序设计相关概念的理解。教 案 续 页基
28、本内容(讲稿)备注第二章 面向对象程序设计基础1.对象的创建构造函数通过new关键字创建一个对象当对象创建时,一个特殊的函数被调用,此函数被称为构造函数!n类的构造函数:函数名称及类名称相同的函数public class MyClass public MyClass() ;/缺省构造函数 public MyClass(string info) /构造函数二(重载)一个类可以有多个构造函数,这些构造函数构成“重载(overload)”关系。在程序实际运行时,依据参数决定调用哪个构造函数。有关构造函数问:类的构造函数有什么用?答:构造函数多用于初始化类的字段。“对象变量”的剖析对象变量用于“引用”
29、一个真实的对象。2.什么叫函数重载(Overload)?构成重载的方法拥有以下特征:1.方法名相同2.方法参数列表不同注意:方法的返回值类型不作为判断方法重载的依据。演示:(1)基类库中MessageBox.Show方法(2)展示如何定义重载的方法,并通过设置断点展示程序运行时到底调用的是哪个重载方法3.两种不同的内存类型(Type)“类”类型的变量属于“引用类型(Reference Type)”的变量;其引用的对象占用的内存位于“堆(heap)”中。诸如int之类简单类型的变量属于“值类型(Value Type)”的变量,值类型的变量占用的内存位于“线程堆栈(thread stack)”中。
30、实例 public partial class frmMain : Form public frmMain() InitializeComponent(); public int counter = 0; private void btnClickMe_Click(object sender, EventArgs e) / int counter = 0; counter+; /this.counter+; lblCount.Text = counter.ToString(); 4.奇特的关键字:thisC#中的this,是一个殊殊的对象引用,它代表对象自身。位于同一类内部的成员彼此访问,本质
31、上是通过this这一特殊引用来完成的。只不过这个关键字通常被省略了。通过对象变量来访问变量的实例成员,是面向对象编程中的一个基本原则。思索:假设A是一个类,请看以下代码:A obj1 = new A();A obj2 = obj1;n问题:1.obj1 和obj2 引用两个不同的对象吗?2.你能否通过写几句试验代码来证明你的想法是对的?对象变量“相互赋值”的真实含义问:以下代码输出什么结果?代码中的MyClass是一个类:int i = 100;int j = 100;Console.WriteLine( i= j );MyClass obj1 = new MyClass();MyClass
32、obj2 = new MyClass();Console.WriteLine( obj1 = obj2 );有趣的“”当“”运算符施加于两个简单数据类型变量(如int)时,实际上是比对两个变量的值。当“”运算符施加于两个对象变量时,实际上是比对这两个对象变量是否引用同一对象!以下代码定义了一个类:class StaticMembers public static int staticVar=0; public int dynamicVar=0; public void increaseValue() staticVar+; dynamicVar+; 请编写代码创建100个StaticMembe
33、rs对象,并对每个对象调用increaseValue方法,之后,输出staticVar和dynamicVar的值ObjectCounter示例分析类的实例成员只能通过对象来访问。每个对象都有一份自己独享的实例成员,是“个人财产”。类的静态成员归所有对象所共享,是“国有资产”。5.类的“实例成员”及“静态成员”在C#中,属于同一个类的成员(包括字段/属性/方法)相互访问,拥有以下的规则:类的实例方法可以访问类的所有成员;类的静态方法只能访问或调用类的静态成员!为什么这一切如此重要?深刻理解类和对象这两个概念,是面向对象编程的基础,在此基础之上,才可以介绍更多的面向对象编程知识,下面,让我们“小试
34、牛刀”,尝试着使用面向对象编程的基本理论,掌握多窗体编程的基本技巧教 案 末 页小结本节主要教学内容:(1)对象的创建构造函数(2)什么叫函数重载(Overload)?(3)两种不同的内存类型(Type)(4)奇特的关键字:this(5)类的“实例成员”及“静态成员”复习思考题及作业题实验四题目1.定义两个完成加法功能的重载方法,一个接收两个整数作为参数,另一个接收两个浮点数作为参数。写几句示例代码证明在不同的上下文环境中,计算机会执行不同的方法。题目2.以下代码定义了一个类:class StaticMembers public static int staticVar=0; public i
35、nt dynamicVar=0; public void increaseValue() staticVar+; dynamicVar+; 请编写代码创建100个StaticMembers对象,并对每个对象调用increaseValue方法,之后,输出staticVar和dynamicVar的值教 案 首 页第 4 次课 授课时间: 课程名称可视化程序设计年 级大二下专业层次信息及计算教师付勇智专业技术职务讲 师学 时2授课题目(章、节)第三章 窗体Form的构建及属性基本教材参考用书Microsoft C# Windows程序设计(上下册)Charles Petzold著 天宏工作室译 北京
36、大学出版社教学目的及要求:1本章学习目的及要求:深入学习面向对象程序设计有关继承的内容;掌握基类及派生类的概念及其相互关系;了解C#语言有关继承语法的使用;在此基础上介绍可视化程序设计的最基本类Form窗体类及其继承派生关系,学会使用使用Form类产生所需应用程序窗体以及窗体属性的控制。2本节学习目的及要求:在掌握类的继承基本概念的基础上,重点掌握Form窗体类的继承体系,窗体对象的产生、显示及属性设置等问题。教学内容及时间安排,教学方法:1教学内容及时间安排(1)面向对象程序设计的关键-继承(10min)(2)基类和派生类(15min)(3)C#中有关继承派生的规定(20min)(4)中的窗
37、口对象Form(35min)(5) 窗体的属性及继承(10min)2教学方法:讲授法、问答法、讨论法和演示法。教学重点、难点:在本节课的教学内容中,窗体类的继承关系及其属性为教学重点;继承的原理及类的继承体系设计方法为本教学的难点。授课方法及手段:在授课过程中以讲授法为主,辅助于问答法、讨论法和演示法。基本理论讲授采用讲授法和演示法进行,课堂知识的巩固采用讨论法进行,本节教学测量采用问答法进行。为了增加单位课时的信息量,应用多媒体技术组织教学过程。为了保证学生对所学内容的实际掌握能力,应当在介绍相关概念和理解后,通过实例程序的演示加深学生对面向对象程序设计相关概念的理解。教 案 续 页基本内容
38、(讲稿)备注第三章 窗体Form的构建及属性1.面向对象程序设计的关键-继承面向对象程序设计的高效之处在于可以把不同事物所具有的共性抽象出来,作为基础,在此基础上,再加入事物个性的实现,这样就减少了对共性的重复实现。这样就能够在体现现实事物丰富多彩的特点的同时,又不之余增加很大的代码编写和维护的工作量。面向对象程序设计通过继承派生的机制来实现共性特点以及在此基础上的继承。继承(Inheritance)举例例如:男学生和女学生有大量共性的信息,包括有学生的学号、姓名、课程成绩等,可以以此为基础实现学生类。在继承学生类的共性基础上,派生实现男生类和女生类,此时只需要实现男/女生类中不同的地方,比如
39、:上体育课、就寝、上厕所。代码示例class student string stu_no; string stu_name; int stu_score;class male_student : student void 就寝() 回男生宿舍(); 睡觉(); class female_student : student void 就寝() 回女生宿舍(); 睡觉(); 2.基类和派生类实现共性特征的类是整个类继承体系的基础,称为基类(base class),也叫作父类(parent class),例如上例中的学生类。在基类基础上加入个性特点所实现的类称为派生类(derived class),
40、也叫作子类,例如上例中的男生类和女生类。派生类和基类之间是继承派生的关系,在C#语言中通过冒号表示 “:” 在定义派生类的同时指明其所继承自的基类,例如: class male_student : student同时,派生类又可以作为其他类的基类继续被继承,例如:男生类又可以派生出理科男生及文科男生类。3.C#中有关继承派生的规定C#中每个类只能从唯一的基类进行继承(接口Interface除外)C#中所有的类都直接或者间接的派生自系统的最底层基类Object,在定义一个类的时候如果不指明其基类,则系统自动默认从Object进行继承。class A 等价于 class A:Object继承的相关
41、规则派生类自动从基类继承并获得所有标记为public和protected的字段和方法,标记为private的成员除外,只能在基类本身内部访问。示例程序class student string stu_no; string stu_name; string stu_gender; int stu_score; public student(String Stu_NO, String Stu_Name) stu_no = Stu_NO; stu_name = Stu_Name; public void Print_Score() Console.WriteLine(stu_no + ":
42、" + stu_name + "的体育课成绩为:" + stu_score.ToString() + "分"); 男生类的实现class male_student : student public male_student(String Stu_NO, String Stu_Name) : base(Stu_NO, Stu_Name) stu_gender = "男" public void PE_Class() Console.Write("请输入" + stu_name + "的成绩:&qu
43、ot;); stu_score = Convert.ToInt32(Console.ReadLine(); Print_Score(); 女生类的实现class female_student : student public female_student(String Stu_NO, String Stu_Name) : base(Stu_NO, Stu_Name) stu_gender = "女" public void PE_Class() Console.Write("请输入" + stu_name + "的成绩:"); stu
44、_score = 10 + Convert.ToInt32(Console.ReadLine(); Print_Score(); student基类的改进using System;class student private string stu_no; protected string stu_name; protected string stu_gender; protected int stu_score; public student(String Stu_NO, String Stu_Name) stu_no = Stu_NO; stu_name = Stu_Name; public
45、void Print_Score() Console.WriteLine(stu_no + ":" + stu_name + "的体育课成绩为:" + stu_score.ToString() + "分"); Main函数调用class Program public static void Main() male_student StuA = new male_student("001", "张三"); female_student StuB = new female_student("
46、;002", "李四"); StuA.PE_Class(); StuB.PE_Class(); student x = (student)StuB; x.Print_Score(); Console.ReadLine(); 4. 中的窗口对象Form在Windows应用程序中,通常有一个“窗口”作为应用程序及用户交互的基础界面在环境下,一个窗口称之为“窗体”(Form)中窗体由System.Windows.Forms命名空间中的Form类进行定义Form类的继承关系产生Form对象class NewFormpublic static void Main()new
47、System.Windows.Forms.Form();using System.Windows.Forms;class FormNewpublic static void Main()Form theform;theform=new Form();显示窗体using System.Windows.Forms;class FormNewpublic static void Main()Form form=new Form();form.Show();form.Show();等价方法form.Visible=trueControl类的基本属性及方法方法说明void Show()使控件可见void
48、 Hide()使控件不可见类型属性访问方式boolVisible读取/设置stringText读取/设置停留显示Formusing System.Threading;using System.Windows.Forms;class ShowFormAndSleeppublic static void Main()Form form=new Form();form.Show();Thread.Sleep(5000);form.Text= " My First Form "Thread.Sleep(5000);保持窗口using System.Windows.Forms;cla
49、ss RunFormBadlypublic static void Main()Form form=new Form();form.Text= " Not a Good Idea "form.Visible=true;Application.Run();保持窗口的改进using System.Windows.Forms;class RunFormBadlypublic static void Main()Form form=new Form();form.Text= " My Very Own Form "Application.Run(form);同时
50、创建多个窗口using System.Windows.Forms;class TwoFormspublic static void Main()Form form1=new Form();Form form2=new Form();form1.Text= " Form passed to Run() "form2.Text= " Second Form "form2.Show();Application.Run(form1);MessageBox.Show(" Application.Run() has returned " + " Control back to Main. Bye! ", " TwoForms ");5.窗体的属性及继承窗体的属性using System.Drawin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论