《.NET程序员面试秘笈》----面试题7 构造函数有什么作用

简介: 【考点】各种形态构造函数的理解,派生类的构造函数,构造函数的重载。

本节书摘来自异步社区《.NET程序员面试秘笈》一书中的第1章,面试题7,作者: 张云翯, 更多章节内容可以访问云栖社区“异步社区”公众号查看。

面试题7 构造函数有什么作用

.NET程序员面试秘笈
【考点】各种形态构造函数的理解,派生类的构造函数,构造函数的重载。

【出现频率】

【解答】

构造函数用于创建类的实例,并对实例进行初始化操作,通过不同的参数传递,可进行不同的实例初始化操作。本例通过多种不同形式的构造函数创建实例,并输出初始化的结果。在ch01目录下新建一个程序文件,并命名为Constructor.cs,编写代码如程序1.8所示。

image

image

在命令行下编译Constructor.cs后,执行Constructor程序,其效果如图1.10所示。

image

【分析】

前面的所有示例中都使用了构造函数,因为构造函数用于创建类的实例(对象)。在类中声明构造函数可对新实例(对象)进行初始化的操作,其编写方法如以下代码所示:

class 类名称
{
 访问修饰符 类名称()
 {
   初始化操作;
 }
}

可见,构造函数和类中的方法类似,也是一种函数,不过构造函数的名称必须和类名称相同。并且构造函数没有返回值,所以其函数签名和一般的函数有区别。没有参数的构造函数被称为默认构造函数,如果非静态类的类体中没有声明构造函数,类将自动提供一个默认构造函数,并将类成员初始化为默认值。

说明:

结构类型(Struct)是值类型,不需要显式声明默认构造函数,编译器将自动生成默认构造函数。当用new运算符实例化时默认构造函数才被调用,将成员初始化为默认值。
通过不同的参数传递,在类体中可声明多个构造函数,即实现构造函数的重载。其编写方法如以下代码所示:

class 类名称
{
 访问修饰符 类名称()
 {
   初始化操作1;
 }
 访问修饰符 类名称( 参数类型1 参数1......)
 {
   初始化操作2;
 }
 访问修饰符 类名称( 参数类型2 参数1......)
 {
   初始化操作3;
 }
}

在程序中创建该类的实例(对象)时,通过传递参数的不同,调用不同的构造函数进行不同的初始化操作。程序中创建实例(对象)的方法如以下代码所示:

类型名称 对象名称 = new 构造函数();     //默认构造函数
类型名称 对象名称 = new 构造函数(参数列表);

一般情况下,构造函数是实例构造函数,即可通过该构造函数在类外部创建类的实例。反之,如果需要阻止创建类的实例,可在声明私有的默认构造函数,这种情况一般用于无实例成员的类中。如果需要完成只执行1次的操作,可以声明静态构造函数。这种构造函数在创建实例前或引用静态成员前自动调用,一般用于对静态成员的操作。

说明:

无实例成员的类可声明为静态类,即无须声明私有的默认构造函数。
本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

相关文章
|
4月前
|
Java
【Java基础面试三十四】、接口中可以有构造函数吗?
这篇文章讨论了Java中接口不能包含构造函数的原因,主要解释了接口中的成员变量默认是public static final类型的常量,不需要通过构造函数初始化,且接口本身不能被实例化,因此构造函数在接口中没有意义。
|
6月前
|
算法 Java 调度
《面试专题-----经典高频面试题收集四》解锁 Java 面试的关键:深度解析并发编程进阶篇高频经典面试题(第四篇)
《面试专题-----经典高频面试题收集四》解锁 Java 面试的关键:深度解析并发编程进阶篇高频经典面试题(第四篇)
73 0
|
3月前
|
算法 程序员 Go
PHP 程序员学会了 Go 语言就能唬住面试官吗?
【9月更文挑战第8天】学会Go语言可提升PHP程序员的面试印象,但不足以 solely “唬住” 面试官。学习新语言能展现学习能力、拓宽技术视野,并增加就业机会。然而,实际项目经验、深入理解语言特性和综合能力更为关键。全面展示这些方面才能真正提升面试成功率。
57 10
|
4月前
|
JavaScript 前端开发 小程序
CoderGuide 程序员前后端面试题库,打造全网最高质量题库
CoderGuide涵盖范围包括且不限于:前端面试题(Vue,React,JS,HTTP,HTML,CSS面试题等),后端面试题(Java,Python,Golang,PHP,Linux,Mysql面试题等),以及算法面试题,大厂面试题,高频面试题,校招面试题等,你想要的,这里都有!
71 2
|
6月前
|
消息中间件 Kafka 程序员
Kafka面试必备:深度解析Replica副本的作用与机制
**Kafka的Replica副本是保证数据可靠性的关键机制。每个Partition有Leader和Follower副本,Leader处理读写请求及管理同步,Follower被动同步并准备成为新Leader。从Kafka 2.4开始,Follower在完全同步时也可提供读服务,提升性能。数据一致性通过高水位机制和Leader Epoch机制保证,后者更精确地判断和恢复数据一致性,增强系统容错能力。**
223 1
|
6月前
|
前端开发 应用服务中间件 程序员
老程序员分享:Nginx相关面试题
老程序员分享:Nginx相关面试题
60 2
|
6月前
|
SQL JavaScript Java
java程序员面试题大全含答案(2018--2019)
java程序员面试题大全含答案(2018--2019)
|
6月前
|
存储 Java
java面试题大全带答案_面试题库_java面试宝典2018
java面试题大全带答案_面试题库_java面试宝典2018
|
6月前
|
SQL 前端开发 Java
2019史上最全java面试题题库大全800题含答案(面试宝典)(4)
2019史上最全java面试题题库大全800题含答案(面试宝典)
|
6月前
|
存储 设计模式 Java
java实习生面试题_java基础面试_java面试题2018及答案_java面试题库
java实习生面试题_java基础面试_java面试题2018及答案_java面试题库

相关实验场景

更多