《.NET程序员面试秘笈》----面试题6 请简述静态类和静态类成员

简介: 【考点】静态类和静态类成员的理解,static在应用中的特殊性。

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

面试题6 请简述静态类和静态类成员

.NET程序员面试秘笈
【考点】静态类和静态类成员的理解,static在应用中的特殊性。

【出现频率】

【解答】

在ch01目录下新建一个程序文件,并命名为Static.cs,编写代码如程序1.7所示。



image

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


6dabcc4a74749930cf9dfcb015e4688cfadab9c6

本例的Main方法中,首先将用户第1次输入的值通过逗号分隔为2个字符串,再分别赋值给PC类的静态字段,即cpu和memory;然后将用户的第2次输入也分隔为2个字符串,并转换为整数类型赋值给p和n。通过传递参数p和n给PC的构造函数创建了PC类的对象ibm,并进行了初始化。在用户输入值后的第1行访问了PC类的2个静态字段,并通过实例方法计算了总价。在第2行直接调用了静态类CpuMsg的静态方法getmsg(),静态类CpuMsg完全不需要实例化,可以很方便地直接在程序中使用。在.NET的类库中有很多类似的静态类,可以在程序中直接使用其方法,例如Math类。

【分析】

static是比较特殊的修饰符,它所修饰的类或类成员被称为静态类或静态类成员。

当类中某些成员不需要创建实例实现,则可将其声明为静态类成员。静态成员在访问时直接引用类名而非对象名,同样,“this”关键字也无法访问静态成员。这些成员可用作该类的多个对象共享的数据,因为静态类成员不依赖某个对象。声明静态类成员如以下代码所示:

访问修饰符 static 数据类型 类成员;

当类中没有和对象实例相关的成员时,即类体中只有静态成员,可声明该类为静态类。静态类无法用new创建对象,所以并不能编写构造函数,并且该类是密封类(即无法被继承)。静态类的声明方法如以下代码所示:

访问修饰符 static class 类名称

{
 静态类成员1;
 静态类成员2;
 静态类成员3;
 ...
}

必须注意的是,类中的常数声明和类型声明默认为静态,如类体中声明1个类,这个类默认为static,即无法被所属类的对象访问。

注意:

声明静态类时,必须保证其内含成员全部为静态成员。
本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

相关文章
|
6月前
|
算法 Java 调度
《面试专题-----经典高频面试题收集四》解锁 Java 面试的关键:深度解析并发编程进阶篇高频经典面试题(第四篇)
《面试专题-----经典高频面试题收集四》解锁 Java 面试的关键:深度解析并发编程进阶篇高频经典面试题(第四篇)
74 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月前
|
前端开发 应用服务中间件 程序员
老程序员分享: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月前
|
SQL Java 数据库连接
2019史上最全java面试题题库大全800题含答案(面试宝典)(2)
2019史上最全java面试题题库大全800题含答案(面试宝典)
|
6月前
|
存储 设计模式 Java
java实习生面试题_java基础面试_java面试题2018及答案_java面试题库
java实习生面试题_java基础面试_java面试题2018及答案_java面试题库
|
6月前
|
SQL 算法 安全
java面试宝典_java基础面试_2018java面试题_2019java最新面试题
java面试宝典_java基础面试_2018java面试题_2019java最新面试题