C#教程第七课:类的入门
来源:互联网 发布:echars 加载数据慢 编辑:程序博客网 时间:2024/06/04 18:12
导读:
// Namespace Declaration
using System;
// helper class
class OutputClass {
string myString;
// Constructor
public OutputClass(string inputString) {
myString = inputString;
}
// Instance Method
public void printString() {
Console.WriteLine("{0}", myString);
}
// Destructor
~OutputClass() {
// Some resource cleanup routines
}
}
// Program start class
class ExampleClass {
// Main begins program execution.
public static void Main() {
// Instance of OutputClass
OutputClass outCl = new OutputClass("This is printed by the output class.") { }
// Call Output class' method
outCl.printString();
}
}
说明
1.清单7-1 演示了两个类。
第一个类"OutputClass"包括:一个构造函数,一个实例方法,以及一个析构函数,还包括一个域名"myString"。构造函数是用来初始化类的数据成员的。本例中,OutputClass类的构造函数接收一个字符串参数,并把它拷贝到该类的myString域中。
这种形式的构造函数可以包含在清单7-1中的OutputClass类中。该缺省的构造函数后跟着初始化符。分号":"标志着初始化开始,后面的"this"是关键字,表示OutputClass这个类所对应的对象。this可以有效地调用该对象中的构造函数。"this"关键字后面的参数为字符串类型。上面的初始化工作调用了OutputClass构造函数,该构造函数接收一个字符串类型的数据作为参数。初始化工作确保在类的域能够在类的实例化过程中被初始化。
上面的例子表明:一个类可以有多种格式的构造函数。具体调用哪一种构造函数取决于参数个数及参数类型。
类成员的类型
在C#中,有两种类型的类成员,实例和静态的。每次定义类的对象时,就创建了该类的一个实例。ExampleClass中的 Main() 方法创建了OutputClass类的一个名为"outCl"的实例。你可以用不同的名字创建OutputClass类的多个实例。这些实例都是各自独立的。例如,OutputClass类的两个实例创建如下:
OutputClass oc1 = new OutputClass("OutputClass1");
OutputClass oc2 = new OutputClass("OutputClass2");
于是,创建了OutputClass类的两个单独的实例,且各自带有单独的"myString"域和"printString()"方法。上例中,两个实例名为"oc1" 和"oc2"。 另外一方面,如果类成员是静态的,可以通过如下格式来访问: . 。
一旦OutputClass类有如下的静态方法:
static void staticPrinter() {
Console.WriteLine("There is only one of me.");
}
你就可以用下面的方式,从Main()中调用该函数:
OutputClass.staticPrinter();
注意:
调用类的静态成员必须通过类名而不是实例名。类的静态成员的副本仅有一个。
另外一种类型的构造函数是静态构造函数。 通过在构造函数名称的前面使用关键字"static",就可以定义一个静态的构造函数。 调用静态的构造函数的发生时间是:在创建类的实例之前 ,在调用类的静态成员之前,在调用派生类的静态构造函数之前。(在后续课程中将介绍),且仅被调用一次。
OutputClass也有一个析构函数,除了前面加上了"~"符号,就跟构造函数的格式一样。析构函数用于释放类所占用的资源。当C#垃圾搜集器决定把对象从内存中清除出去时,就会调用析构函数。
小结
现在,你已经了解了类的如下成员:域,方法,构造函数,析构函数。下面是类的完整的成员类型:
构造函数;析构函数;域;方法;属性;索引;代理 ;事件;嵌套类
上面没有介绍过的类型将在后续课程中讲解。
概括地讲,你现在已经学会了如何定义常规的和静态的构造函数,也了解了如何初始化类的域。如果没有必要实例化一个对象,可以创建静态的类成员。你也了解了用来释放资源的析构函数的用法。
本文转自
http://www.bc-cn.net/Article/net/cs/jc/200409/36.html
本节课将介绍C#中的类,其目的如下:
1.了解构造函数的实现
2.了解实例和静态成员的区别
3.了解析构函数的使用
4.熟悉类的成员类型
在本教程的一开始,你就已经接触到类的用法了。现在,既然已经对类有了感性认识,并知道如何定义一个类,本节课将
定义类的格式是:关键字"Class"后面跟着类名,类名之后的大括号中包含的是类的成员。构造函数没有返回值,且与类同名。清单7-1是一个关于类的例子。
// Namespace Declaration
using System;
// helper class
class OutputClass {
string myString;
// Constructor
public OutputClass(string inputString) {
myString = inputString;
}
// Instance Method
public void printString() {
Console.WriteLine("{0}", myString);
}
// Destructor
~OutputClass() {
// Some resource cleanup routines
}
}
// Program start class
class ExampleClass {
// Main begins program execution.
public static void Main() {
// Instance of OutputClass
OutputClass outCl = new OutputClass("This is printed by the output class.") { }
// Call Output class' method
outCl.printString();
}
}
说明
1.清单7-1 演示了两个类。
第一个类"OutputClass"包括:一个构造函数,一个实例方法,以及一个析构函数,还包括一个域名"myString"。构造函数是用来初始化类的数据成员的。本例中,OutputClass类的构造函数接收一个字符串参数,并把它拷贝到该类的myString域中。
2.构造函数并不是一定要用户自己定义的,例如ExampleClass类就用到了缺省的构造函数。
缺省的构造函数很简单,且不带参数。但这样的构造函数并没有多大用处。为了使得缺省的构造函数能够有些用途,用户自己可以对它初始化。例如:
这种形式的构造函数可以包含在清单7-1中的OutputClass类中。该缺省的构造函数后跟着初始化符。分号":"标志着初始化开始,后面的"this"是关键字,表示OutputClass这个类所对应的对象。this可以有效地调用该对象中的构造函数。"this"关键字后面的参数为字符串类型。上面的初始化工作调用了OutputClass构造函数,该构造函数接收一个字符串类型的数据作为参数。初始化工作确保在类的域能够在类的实例化过程中被初始化。
上面的例子表明:一个类可以有多种格式的构造函数。具体调用哪一种构造函数取决于参数个数及参数类型。
类成员的类型
在C#中,有两种类型的类成员,实例和静态的。每次定义类的对象时,就创建了该类的一个实例。ExampleClass中的 Main() 方法创建了OutputClass类的一个名为"outCl"的实例。你可以用不同的名字创建OutputClass类的多个实例。这些实例都是各自独立的。例如,OutputClass类的两个实例创建如下:
OutputClass oc1 = new OutputClass("OutputClass1");
OutputClass oc2 = new OutputClass("OutputClass2");
于是,创建了OutputClass类的两个单独的实例,且各自带有单独的"myString"域和"printString()"方法。上例中,两个实例名为"oc1" 和"oc2"。 另外一方面,如果类成员是静态的,可以通过如下格式来访问:
一旦OutputClass类有如下的静态方法:
static void staticPrinter() {
Console.WriteLine("There is only one of me.");
}
你就可以用下面的方式,从Main()中调用该函数:
OutputClass.staticPrinter();
注意:
调用类的静态成员必须通过类名而不是实例名。类的静态成员的副本仅有一个。
另外一种类型的构造函数是静态构造函数。 通过在构造函数名称的前面使用关键字"static",就可以定义一个静态的构造函数。 调用静态的构造函数的发生时间是:在创建类的实例之前 ,在调用类的静态成员之前,在调用派生类的静态构造函数之前。(在后续课程中将介绍),且仅被调用一次。
OutputClass也有一个析构函数,除了前面加上了"~"符号,就跟构造函数的格式一样。析构函数用于释放类所占用的资源。当C#垃圾搜集器决定把对象从内存中清除出去时,就会调用析构函数。
小结
现在,你已经了解了类的如下成员:域,方法,构造函数,析构函数。下面是类的完整的成员类型:
构造函数;析构函数;域;方法;属性;索引;代理 ;事件;嵌套类
上面没有介绍过的类型将在后续课程中讲解。
概括地讲,你现在已经学会了如何定义常规的和静态的构造函数,也了解了如何初始化类的域。如果没有必要实例化一个对象,可以创建静态的类成员。你也了解了用来释放资源的析构函数的用法。
本文转自
http://www.bc-cn.net/Article/net/cs/jc/200409/36.html
- C#教程第七课:类的入门
- C#教程 第七课:类的入门
- C#教程第七课:类的入门
- C#教程第七课:类的入门
- 贺利坚老师c教程第七课学习总结
- 小小君的C语言第七课
- c语言教程 第七章 指针
- play教程 第七课 View的用法 模版的用法
- play教程 第七课 View的用法 模版的用法
- C语言入门-第七周:作业01
- C语言入门-第七周:作业02
- C语言第七课
- Linux C第七课
- C语言第七课
- 第七课 C变量
- 用OpenInventor实现的NeHe OpenGL教程-第七课
- 用OpenInventor实现的NeHe OpenGL教程-第七课
- 用OpenSceneGraph实现的NeHe OpenGL教程 - 第七课
- 在C#里对xml文件进行修改,新增,删除,插入操作
- 汉语编程 可望突破中国软件人才短缺的瓶颈
- [转]大型Web2.0站点构建技术初探
- 正邪Sniffer(上):01报文里追查数据
- 25种java模式代码参考手册
- C#教程第七课:类的入门
- ASP.NET动态创建控件之绝境求生
- Apache2.2 + php5.2最新配置方案
- ArrayList源码分析
- Axis开发Web Service的实例
- 关于你明白了吗的回答?
- [推荐]端口大全及端口关闭方法(详细)
- Bat批量处理文件教程
- Java Web开发模型新构思——Hibernate/JPA…+Spring+Struts2/DWR…+ExtJS