全部博文(43)
分类:
2006-07-03 12:50:55
本节课将介绍中的类,其目的如下:
1.了解构造的实现
2.了解实例和静态成员的区别
3.了解析构的使用
4.熟悉类的成员类型
在本教程的一开始,你就已经接触到类的用法了。现在,既然已经对类有了感性认识,并知道如何定义一个类,本节课将
定义类的格式是:关键字"Class"后面跟着类名,类名之后的大括号中包含的是类的成员。构造没有返回值,且与类同名。清单7-1是一个关于类的例子。
清单 7-1. Example Classes: Classes.cs |
// 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类就用到了缺省的构造。
缺省的构造很简单,且不带参数。但这样的构造并没有多大用处。为了使得缺省的构造能够有些用途,用户自己可以对它初始化。例如:
public OutputClass() : this("Default Constructor String") { } |
OutputClass oc1 = new OutputClass("OutputClass1"); OutputClass oc2 = new OutputClass("OutputClass2"); |
static void staticPrinter() { Console.WriteLine("There is only one of me."); } 你就可以用下面的方式,从Main()中调用该: OutputClass.staticPrinter(); |
注意: |