静态类的重要知识点

小结一下关于静态类的重要知识点:

1、调用静态方法的时候只能通过类名直接来调用,不能通过对象来调用。也就是说静态成员不需要实例化对象。

2、静态成员在整个程序推出时才才释放资源,所以可以在整个应用程序中用到静态成员,它相当于在共享数据。

3、静态类的构造函数,只会在第一次使用静态类之前调用执行,并且只会执行一次。

4、当给一个普通类添加静态字段后,系统会默认为该类生成一个静态构造函数。【静态构造函数不能有访问修饰符,并且不能够带参数】

5、静态类不能被实例化,并且不能被继承。

6、由于静态成员在整个程序推出时才释放资源,所以尽量避免写静态字段,一般只写静态方法。

7、静态类和普通类中的静态成员

(1)静态类:一般都用作工具类,里面都是一些工具函数例如Math,Console,都是静态类。  静态类中只包括静态成员。

(2)普通类中的静态成员:只能通过类名来访问,多个对象共享一个静态成员。静态方法中只能访问静态成员。

什么时候用静态类?

答:一般情况下,当这个类是一个工具类,里面都是方法,为了让用户调用的时候方便,不需要实例化对象,可将此类直接标记为static的类,该类中只能包含静态成员,不能包含实例成员。

什么情况下只需在一个普通类中编写一个静态成员,而这个类不能标记为static?

答:当这个类需要实例化的时候或者用到多态的时候(多态是必须能被继承的,而静态类是不能够被继承的)。这时如果类中的一个成员是所有对象共享的数据,这时候可以将该类中的这个成员标记为静态的,但是该类还是一个实例类。

8、静态方法或者静态变量创建后始终使用同一块内存(静态存储区),而使用实例方式则会创建多个内存。

9、静态类的继承问题:

静态类不能被其他类继承。

静态类不能继承自其他类,只能继承自Object类。

静态类不能使用多态(本身就不能被继承)

sealed:密封类,不能被继承      或   禁止子类重写父类的方法。

10、静态类的本质:abstract+sealde

(1)abstract:不能被实例化

(2)sealed: 不能被继承。

时间: 2024-08-28 15:27:50

静态类的重要知识点的相关文章

C++静态成员函数小结

C++(C++培训 )中类里面的静态成员真是个让人爱恨交加的特性.我决定好好总结一下静态类成员的知识点,以便自己在以后面试中,在此类问题上不在被动. 静态类成员包括静态数据成员和静态函数成员两部分. 一 静态数据成员: 类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员.和其他数据成员一样,静态数据成员也遵守public/protected/private访问规则.同时,静态数据成员还具有以下特点: 1.静态数据成员的定义. 静态数据成员实际上是类域中的全局变量

c++中static关键字的用法总结

类中的静态成员真是个让人爱恨交加的特性.我决定好好总结一下静态类成员的知识点,以便自己在以后面试中,在此类问题上不在被动. 静态类成员包括静态数据成员和静态函数成员两部分. 一 静态数据成员: 类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员. 和其他数据成员一样,静态数据成员也遵守public/protected/private访问规则.同时,静态数据成员还具有以下特点: 1.静态数据成员的定义. 静态数据成员实际上是类域中的全局变量.所以,静态数据成员的定

C++静态成员函数小结(转)

类中的静态成员真是个让人爱恨交加的特性.我决定好好总结一下静态类成员的知识点,以便自己在以后面试中,在此类问题上不在被动. 静态类成员包括静态数据成员和静态函数成员两部分. 一 静态数据成员: 类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员.和其他数据成员一样,静态数据成员也遵守public/protected/private访问规则.同时,静态数据成员还具有以下特点: 1.静态数据成员的定义. 静态数据成员实际上是类域中的全局变量.所以,静态数据成员的定义

C++静态成员总结(转)

类中的静态成员真是个让人爱恨交加的特性.我决定好好总结一下静态类成员的知识点,以便自己在以后面试中,在此类问题上不在被动. 静态类成员包括静态数据成员和静态函数成员两部分. 一 静态数据成员: 类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员.和其他数据成员一样,静态数据成员也遵守public/protected/private访问规则.同时,静态数据成员还具有以下特点: 1.静态数据成员的定义. 静态数据成员实际上是类域中的全局变量.所以,静态数据成员的定义

[转]C++静态成员函数小结

类中的静态成员真是个让人爱恨交加的特性.我决定好好总结一下静态类成员的知识点,以便自己在以后面试中,在此类问题上不在被动. 静态类成员包括静态数据成员和静态函数成员两部分. 一 静态数据成员: 类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员.和其他数据成员一样,静态数据成员也遵守public/protected/private访问规则.同时,静态数据成员还具有以下特点: 1.静态数据成员的定义. 静态数据成员实际上是类域中的全局变量.所以,静态数据成员的定义

转载c++常忘的知识点

C++的一些知识点比较零碎,下面清单的形式做一些记录与归纳,以供参考. 1.赋值操作符重载(深复制): (1)由于目标对象可能引用了以前的一些数据,所以应该先delete这些数据: (2)注意到对象可能对自己赋值,所以应该加上下面语句(another表示另一个对象),再进行(1)的操作: (3)函数返回一个指向调用对象的引用: (4)赋值操作符只能通过成员函数重载. 2.静态类成员函数: (1)静态类成员函数在类的声明中要加static关键字,而在定义中则不用: (2)静态类成员函数没用this

.NET/C# 各版本变化及衍生知识点

还是新开一篇吧,因为不光要记录各版本变化,还想把相关知识点衍生出来扩展一下,一天写不完就多几天,这里面知识点非常多. C# 1.0,对应.NET 1.0,对应VS 2003,新特性:事件.委托. C# 2.0,对应.NET 2.0,对应VS 2005,新特性:泛型.匿名.迭代.可空.委托(协变/逆变).部份类.形态类.属性访问控制 C# 3.0,对应.NET 3.0,对应VS 2008,新特性:类型推断.隐式类型的部变量.对象集合初始化.自动实现属性.匿名类型.扩展方法.查询表达式.Lambda

知识点汇总

C#语言新特性 自动属性 下面两种写法作用相同.前者属于自动属性.在使用自动属性时应该注意:get和set访问器不能有具体的实现. 可空类型(可以为空的值类型) 对于值类型而言,C#规定:在定义变量的同时必须要对其赋初值,否则可能无法通过编译器的编译.但是在某些情况下,用户事先是不知道变量的初始值是多少的.因为可以为空的值类型就显得很重要. 值类型包括:int\double\float\decimal\bool\char 可为空的语法为:Nullable<T>,其中T指代上面具体的某种值类型

.NET知识点总结二(笔记整合)

19.什么是类型? 用来定义某一种数据在内存里开辟空间的大小,还可以预置操作此种类型数据的相关方法 20.this关键字在方法中使用时所代表的含义 this指的是当前类的对象,或者父类的类的对象(base只能指向父类的对象) 21.里氏替换原则 子类替换父类所在的位置 22.C#中的数据类型 值类型 简单类型(数字类型(int,short,long,float,double),字符(char),逻辑值(bool)),结构体(struct),枚举(enum) 引用类型 字符串(string),数组