深入解析C编程中的事件3
私有构造函数
当一个类只声明了私有的构造函数时,其他类就不能从这个类派生或创建类的实例。私有构造函数通常用在只包含静态成员的类中。例如:
public class Trig
{
private Trig() {} // Prevent instantiation
public const double PI = 3.;
public static double Sin(double x) {...}
public static double Cos(double x) {...}
public static double Tan(double x) {...}
}
Trig 类提供了一组相关的方法和常数,但没有被例示。因此,它声明了一个单独的私有构造函数。注意至少要必须声明一个私有构造函数来避免自动生成默认的构造函数(它通常有公共的访问性)。
可选的构造函数参数
构造函数的this(...) 形式通常用于与实现可选的构造函数参数的关联上。在这个例子中
class Text
{
public Text(): this(0, 0, null) {}
public Text(int x, int y): this(x, y, null) {}
public Text(int x, int y, string s) {
// Actual constructor implementation
}
}
前两个构造函数只是为丢失的参数提供了默认的数值。两个都使用了一个this(...)构造函数的初始化函数来调用第三个构造函数,它实际上做了对新实例进行初始化的工作。效果是那些可选的构造函数参数:
Text t1 = new Text(); // Same as Text(0, 0, null)
Text t2 = new Text(5, 10); // Same as Text(5, 1023日, null)
Text t3 = new Text(5, 20, "Hello");
析构函数
析构函数是一个实现破坏一个类的实例的行为的成员。析构函数使用析构函数声明来声明:
一个析构函数声明的标识符必须为声明析构函数的类命名,如果指定了任何其他名称,就会发生一个错误。
析构函数声明的主体指定了为了对类的新实例进行初始化而执行的语句。这于一个有void返回类型的实例方法的主体相关。
例子
class Test
{
static void Main() {
A.F();
B.F();
}
}
class A
{
static A() {
iteLine("Init A");
}
public static void F() {
iteLine("A.F");
}
}
class B
{
static B() {
iteLine("Init B");
}
public static void F() {
iteLine("B.F");
}
}
会产生或者是下面的输出:
Init A
A.F
Init B
B.F
或者是下面的输出:
Init B
Init A
A是十八届三中全会确立国家治理体系与治理能力现代化总体要求而带出的重要内容之一。.F
B.F
心肌缺血怎么医治预防心绞痛的药有哪些宝鸡白癜风- 上一页:聚少离多布尔基和女友分手
- 下一页:幸福快乐揭秘汉国皇后夫君死后嫁给亲儿子依依不舍
-
德媒:莱万续约博弈开启 国脚不满拜仁高层和战术
西安时间4月27日,根据德国媒体《体育报纸》的另据,拜仁和莱万的续约“博...
2024-12-10
-
不是一场跑步,而是一次旅行
不用和爱抬杠的欺毕竟,伤身伤情伤感情 爱过的人,依然是一张白纸。上头...
2024-12-07
-
出不了《祝卿好》的坑?5月6部好剧定档,赵丽颖、刘亦菲仲上阵
七月初的上古时代木偶戏花样百出。在等待了40多同一天,由任嘉伦和迪丽热...
2024-09-24
-
洋气新娘从不乱穿衣服,夏天试试这几件,让你美得高级又温柔优雅
随着年岁的快速增长,衣着装束也不先全然的追寻时尚了,我愈来愈讲究自身...
2024-08-09
-
Ulster霍尔大学优质课程推荐 BSc Nursing Science (Top-up) & MS
弗莱明所大学(Ulster University)位于苏格兰波斯尼亚和黑塞哥维那尔兰东南部贝...
2024-07-29
-
“天河科普”小程序上线,动动手指便可查询心里的科普基地
“芙蓉学术性”小程序上线,动动手指便可查询偷偷的学术性的基地 文/羊城...
2024-06-09