zoukankan      html  css  js  c++  java
  • 静态构造函数

    写在前面的话

    对于构造函数,我们都很熟悉,用于在实例化类的时候,使用new关键字,new出一个实例来供使用。

    那么对于静态构造函数,充当的是什么角色呢,它和非静态构造函数有什么区别呢?它又有什么好处呢?

    描述

    静态构造函数用于初始化任何静态数据(静态方法里只能引用静态字段,静态构造函数也属于静态方法的一种)。

    静态构造方法在创建第一个实例或引用类的静态变量之前,会自动调用静态构造函数。

    特点:

    1.静态构造函数没有修饰符,也没有参数

    2.静态构造方法无法继承,且无法手动调用

    3.无参数的静态构造函数可以和无参数的非静态函数共存(尽管方法前面相同,但是一个属于类,一个属于实例)

    4.如果类中含有带初始值的静态成员,那么编译器会生成默认的静态构造函数

    典型应用:

    当类使用日志文件时,可以使用这种构造函数,向其中写入日志。

    示例:

        public class Person
        {
            static string name = "张三";
    
            static Person()
            {
                /*
                 * 如果注释下面的话
                   * 则GetName方法返回 张三
                   * 否则返回 李四
                   */   
                 name = "李四";
            }
    
            public string GetName()
            {
                return Person.name;
            }
        }

    我们来新建一个Student类,让它继承自Person类,看看GetName方法会出现得到什么呢?

        public class Student : Person
        {
            
        }
    此时,GetName方法获取的值仍然是 李四。此代码等同于:
        public class Student : Person
        {
            public Student()
                : base()
            {
    
            }
        }
    注意:
    如果有子类继承自带静态构造方法的类时,子类必须有空构造函数,否则会报错。
  • 相关阅读:
    【SICP练习】150 练习4.6
    windows已安装solr
    ps快速删除圆角图片旁白的白色区域方法
    junit学习笔记(二):hamcrest和TestSuit
    取球游戏
    【Linux操作系统分析】设备驱动处理流程
    POJ Secret Milking Machine 【网络流+二分】
    oracle 10 g 需要启动的2个服务
    jQuery也能舞出绚丽的界面(完结篇)
    HDU 2665(Kth number-区间第k大[内存限制+重数])
  • 原文地址:https://www.cnblogs.com/loveYN/p/4509719.html
Copyright © 2011-2022 走看看