今天在做底层数据库操作时,又用到了静态类,所以,单拿出来再说说它

简介:

静态类相当于一个sealed abstract类,主要的一个优点是写在栈中,安全高速稳定,而且在执行的时候,十分优先。

类可以声明为 static 的,以指示它仅包含静态成员。不能使用 new 关键字创建静态类的实例。静态类在加载包含该类的程序或命名空间时由 .NET Framework 公共语言运行库 (CLR;特指:C#语言) 自动加载。

  它们仅包含静态成员

它们不能被实例化。

它们是密封的。

它们不能包含实例构造函数)。

因此创建静态类与创建仅包含静态成员和私有构造函数的类大致一样。私有构造函数阻止类被实例化

优点

使用静态类的优点在于,编译器能够执行检查以确保不致偶然地添加实例成员。编译器将保证不会创建此类的实例。

静态类是密封的,因此不可被继承。静态类不能包含构造函数,但仍可声明静态构造函数以分配初始值或设置某个静态状态。

注意

静态类不能有实例构造器。

静态类不能有任何实例成员。 静态类不能使用abstract或sealed修饰符。 静态类默认继承自System.Object根类,不能显式指定任何其他基类。

静态类不能指定任何接口实现。

静态类的成员不能有protected或protected internal访问保护修饰符。

看代码更清楚一些:

 public static class ReflectionFactory //类自动由CLR自动加载,安全高速稳定,它没有实例成员,不能被实例化
    {
 
        private static String datastr;
        static ReflectionFactory() //静态构造方法在应用程序开始时执行,且只执行一次
        {
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load(@"f:/config/config.xml");
            XmlNode xmlNode = xmlDoc.ChildNodes[1];
            datastr = xmlNode.ChildNodes[0].ChildNodes[0].Value;
        }
        public static IData MakeSQL()
        {
            return Assembly.Load("Data").CreateInstance("Data." + datastr) as IData;
        }
 
目录
相关文章
|
8月前
|
存储 Java 编译器
【javaSE】面向对象程序三大特性之封装(二)
【javaSE】面向对象程序三大特性之封装(二)
|
8月前
|
Java 编译器
【javaSE】面向对象程序三大特性之封装(一)
【javaSE】面向对象程序三大特性之封装(一)
|
2月前
|
Java 数据库
java面向对象高级分层实例_数据库操作类
java面向对象高级分层实例_数据库操作类
12 1
|
9月前
|
存储 编译器 C语言
了解C++类的特性
了解C++类的特性
65 0
|
设计模式 Rust JavaScript
Java面向对象的一些特性
Java面向对象的一些特性
|
安全 Java
java面向对象三大特性,封装篇
1.封装的概念 在面向对象程式设计方法中,封装是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。
83 0
|
SQL 安全 搜索推荐
封装数据库操作类(优化)|学习笔记
快速学习封装数据库操作类(优化)
122 0
封装数据库操作类(优化)|学习笔记
|
SQL PHP 数据库
封装数据库操作类(写操作)|学习笔记
快速学习封装数据库操作类(写操作)
65 0
|
SQL 安全 关系型数据库
封装数据库操作类(小结)|学习笔记
快速学习封装数据库操作类(小结)
82 0
|
SQL 安全 PHP
封装数据库操作类(读操作)|学习笔记
快速学习封装数据库操作类(读操作)
76 0
封装数据库操作类(读操作)|学习笔记