《可视化程序设计》教案
- 格式:doc
- 大小:2.10 MB
- 文档页数:273
教案首页
统(Common Type System)
CTS采用类似Java的Namespace(命名空间)的层次式机制来组织整个类库根据所编写应用程序的类别不同,所调用的类库也不相同
编写本课程中的Windows Forms桌面应用程序主要用到CTS中三个命名空间下的系统类:
System 基本的系统对象,如字符串处理、数学函数等
System.Drawing 主要的图形处理函数
System.Windows.Forms 用户控件,如窗体、按钮、对话框
在编写程序的过程中,通常需要对以上三个命名空间及其对应的动态链接库进行引用,具体方法稍后介绍
C#程序编译运行的过程
CLR .NET平台的虚拟机
Microsoft .NET Framework
要运行.NET程序,则需要有CRL和CTS,这两者的总体就叫做Microsoft .NET Framework(.NET框架类库)
Windows操作系统从Windows XP开始把.NET框架类库作为操作系统的一个组成部分进行发布。
开发所使用的.NET框架类库版本必须和运行环境所装Framework版本相同,高版本并不兼容低版本。
同一操作系统可以同时安装多个版本的.NET框架类库
Microsoft提供了一个简化的Framework版本,以支持智能设备运用程序的开发,称为.NET Compact Framwork,主要运行在Windows CE和Windows Mobile 平台上
Windows/VisualStudio/Framework版本对应表
Visual Studio版本.NET Framework 版
最低Windows版本
本
Visual Studio .NET V1.0 WindowsXP
Visual Studio 2003 .NET V1.1 WindowsXP SP2 Visual Studio 2005 .NET V2.0 Windows Vista Visual Studio 2008 .NET V3.5 Windows Server 2008
Windows 7
Visual Studio 2010 .NET V4.0
Visual Studio 2012 .NET V4.5 Windows 8
Visual Studio .NET使用基础
5.类与对象的概念
把握面向对象编程的最核心概念
从类与对象开始
什么是类?
什么是对象?
这两者有何差别?
为什么理解这两个概念的差别至关重要?
类是一个模板或蓝图
对象根据模板创建出来,它拥有模板所定义的所有特性,但不同的对象其相同特性的取值可以不相同
VS的类库浏览系统
Visual Studio .NET中提供了一个很方便的查询浏览类库结构及其组成的工具Object Browser(对象浏览器),通过点击菜单View Object Browser就可以打开对象浏览器,对类库中组成的各个类的成员字段和方法进行浏览。
6.类的定义、类的成员及其存取权限
类的定义
C#使用class关键字定义一个类。
public class MyClass
{
public int PublicField= 0;
private int PrivateField= 0;
public void PrintValue()
{ }
类的成员
变量字段(field)
函数方法(method)
字段和方法统称为类的“成员(member)”
类成员的存取权限
三种最基本的数据存取权限:
1 public:公有,外界可自由访问
2 private:私有,仅自身的方法可以访问
3 protected:保护,自身或者派生类可以访问开发建议:
仅有需要被外界访问的成员才设置为public的。
类的使用方法
//创建对象
MyClass obj= new MyClass();
属性的要点
当读取属性值时,get方法被调用
当向属性赋值时,set方法被调用
定义一个“属性”的步骤
定义一个私有字段用于存储属性数据。
设计一个get方法,当读取属性值时,向外界返回私有字段的当前值。
设计一个set方法,当向属性赋值时,其自动隐含的value参数保存外界传入的值,应将此值传给前面定义的私有字段。
实验三
设计一个Student类,包容一个字段Name(学生姓名)和一个属性Score (考试成绩)。
编写示例代码:
(1)程序运行时,要求用户输入姓名和考试成绩
(2)程序输出:XXX,你通过(或没通过)了考试(成绩大于等于60分)或XXX,你挂科了(成绩小于60分)。
或XXX,你输入的成绩有误(输入数据超出范围)。
要点:
有效的成绩为[ 0,100]
第二章面向对象程序设计基础
1.对象的创建——构造函数
通过new关键字创建一个对象
当对象创建时,一个特殊的函数被调用,此函数被称为——构造函数!
类的构造函数:函数名称与类名称相同的函数
public class MyClass
{
public MyClass() { }; //缺省构造函数
public MyClass(string info) { } //构造函数二(重载)
}
一个类可以有多个构造函数,这些构造函数构成“重载(overload)”关系。
在程序实际运行时,依据参数决定调用哪个构造函数。
有关构造函数
问:类的构造函数有什么用?
答:构造函数多用于初始化类的字段。
“对象变量”的剖析
对象变量用于“引用”一个真实的对象。
2.什么叫函数重载(Overload)?
构成重载的方法拥有以下特征:
1.方法名相同
2.方法参数列表不同
注意:方法的返回值类型不作为判断方法重载的依据。
演示:
(1).NET基类库中MessageBox.Show方法
(2)展示如何定义重载的方法,并通过设置断点展示程序运行时到底调用的是哪个重载方法
3.两种不同的内存类型(Type)
“类”类型的变量属于“引用类型(Reference Type)”的变量;其引用的对象占
4.奇特的关键字:this
C#中的this,是一个殊殊的对象引用,它代表对象自身。
位于同一类内部的成员彼此访问,本质上是通过this这一特殊引用来完成的。
只不过这个关键字通常被省略了。
通过对象变量来访问变量的实例成员,是面向对象编程中的一个基本原则。
思索:
假设A是一个类,请看以下代码:
A obj1 = new A();
A obj2 = obj1;
问题:
1.obj1 和obj2 引用两个不同的对象吗?
2.你能否通过写几句试验代码来证明你的想法是对的?
对象变量“相互赋值”的真实含义
问:以下代码输出什么结果?
代码中的MyClass是一个类:
int i = 100;
int j = 100;
Console.WriteLine( i== j );
MyClass obj1 = new MyClass();
MyClass obj2 = new MyClass();
Console.WriteLine( obj1 == obj2 );
有趣的“==”
当“==”运算符施加于两个简单数据类型变量(如int)时,实际上是比对两个变量的值。
5.类的“实例成员”与“静态成员”
在C#中,属于同一个类的成员(包括字段/属性/方法)相互访问,拥有以下的规则:
类的实例方法可以访问类的所有成员;
类的静态方法只能访问或调用类的静态成员!
为什么这一切如此重要?
深刻理解类和对象这两个概念,是面向对象编程的基础,在此基础之上,才可以介绍更多的面向对象编程知识,下面,让我们“小试牛刀”,尝试着使用面向对象编程的基本理论,掌握多窗体编程的基本技巧……。