zoukankan      html  css  js  c++  java
  • 静态类的特点及用途

    1:静态类只用于包含静态成员的类型,不能被实例化,我们可以直接使用它的属性与方法,静态类最大的特点就是共享。静态类的特性是防止继承,防止外部来NEW。它相当于一个sealed abstract类。
    2:静态类和类成员用于创建无需创建类的实例就能够访问的数据和函数。静态类成员可用于分离独立于任何对象标识的数据和行为:无论对象发生什么更改,这些数据和函数都不会随之变化。当类中没有依赖对象标识的数据或行为时,就可以使用静态类。
    3:类可以声明为 static 的,以指示它仅包含静态成员。不能使用 new 关键字创建静态类的实例。静态类在加载包含该类的程序或命名空间时由 .NET Framework 公共语言运行库 (CLR) 自动加载。
    4:使用静态类来包含不与特定对象关联的方法。例如,创建一组不操作实例数据并且不与代码中的特定对象关联的方法是很常见的要求。您应该使用静态类来包含那些方法。
    5:总结静态类的主要功能如下:
        它们仅包含静态成员。
        它们不能被实例化。
        它们是密封的。
        它们不能包含实例构造函数(C# 编程指南)。
        静态类不能使用abstract或sealed修饰符。
        静态类默认继承自System.Object根类,不能显式指定任何其他基类。
        静态类不能指定任何接口实现。
        静态类的成员不能有protected或protected internal访问保护修饰符。
    6:因此创建静态类与创建仅包含静态成员和私有构造函数的类大致一样。私有构造函数和虚基类阻止类被实例化。如下
        class TimeUtilClass
        {
            // Redefine the default ctor as private to prevent creation.
            private TimeUtilClass (){}
            public static void PrintTime()
            {
                Console.WriteLine(DateTime.Now.ToShortTimeString());
            }
            public static void PrintDate()
            {
                Console.WriteLine(DateTime.Today.ToShortDateString());
            }
        }
        // Define type as abstract to prevent creation
        abstract class TimeUtilClass
        {
            public static void PrintTime()
            {
                Console.WriteLine(DateTime.Now.ToShortTimeString());
            }
            public static void PrintDate()
            {
                Console.WriteLine(DateTime.Today.ToShortDateString());
            }
        }
        使用静态类的优点在于,编译器能够执行检查以确保不致偶然地添加实例成员。编译器将保证不会创建此类的实利。

  • 相关阅读:
    SpringMVC参数校验
    SpringBoot2集成Activiti6
    spring boot与activiti集成实战 转
    使用国内阿里maven私服方法
    springboot2.04与activiti 6.0集成
    idea actiBPM插件生成png文件 (解决没有Diagrams或Designer选项问题)
    嵌入式Qt-4.8.6显示中文并且改变字体大小和应用自己制作的字体库
    基于Qt Assistant制作软件帮助文档
    推荐一本书,30天自制操作系统
    Qt5 UI信号、槽自动连接的控件重名大坑(UI生成的槽函数存在一个隐患,即控件重名。对很复杂的控件,不要在 designer 里做提升,而是等到程序启动后,再动态创建,可以避免很多问题)
  • 原文地址:https://www.cnblogs.com/zhaoxinshanwei/p/4008678.html
Copyright © 2011-2022 走看看