zoukankan      html  css  js  c++  java
  • 静态类,静态方法,静态变量与非静态之前的区别

    静态类:

    1:仅包含静态变量和静态方法。
    2:无法实例化。
    3:不能包含实例构造函数。

    4:是密封的。

    非静态类:

    1.可以包含非静态成员,也可以包含静态成员。

    2.每次实例化都是一个新的对象。

    3.可以不显示实例化,因为内部有一个默认的静态构造函数,不可重载,当创建类实例或引用任何静态成员之前,静态构造函数被自动执行,并且只执行一次。

    4.也可以通过 类名.方法名或变量名 访问静态成员

    静态方法:

    1.静态方法不能引用非静态变量

    4:静态方法只能被重载,而不能被重写,因为静态方法不属于类的实例成员;当然也不能是Virtual和abstract类型的

    非静态方法:

    1.可以同时引用 非静态变量和静态变量

    静态变量

    1.只有一个副本,实例化类,不会初始化静态变量的值。属于类所有,生命周期和网站运用程序一样长
    2.C# 不支持静态局部变量(在方法内部定义静态变量)。

     

    非静态变量

    1.每次实例化都是一个新的变量。自然要初始化值

    静态构造函数

    1:静态类可以有静态构造函数,静态构造函数不可继承;

    2:静态构造函数可以用于静态类,也可用于非静态类;

    3:静态构造函数无访问修饰符、无参数,只有一个 static 标志;

    4:静态构造函数不可被直接调用,当创建类实例或引用任何静态成员之前,静态构造函数被自动执行,并且

       只执行一次。

    问题:

    1.静态类可以实例化吗?静态类可以有非静态方法和变量吗?静态类的方法和变量怎么调用?

    A:静态类不能实例化;不能有非静态方法和变量;对象名.方法名或变量名调用。

    2.非静态类可以包含静态变量和方法吗?怎么调用?

    A:非静态类可以包含静态变量和方法;类名.方法名或变量名调用

    3.静态方法可以引用非静态变量吗?

    4.实例类中的静态变量和非静态变量有什么区别?

    A:静态变量只有一个副本,实例变量每实例化话一次都是一个新的变量,变量值都会初始化。 而静态变量变量的生存周期和网站运用程序生命周期长度一样。值会累加。

    使用推荐:

    当定义的类不需要进行实例化时,我们使用静态类;如果需要实例化对象,需要继承等特性时,应该使用非静态类。

    尽量用实例变量,少用静态变量。因为实例变量随着对象的销毁而销毁。静态变量整个运用程序销毁才销毁。就像js中应该多使用局部变量少用全局变量一样。

    将需要同时也被静态方法调用的变量设为静态的,那么静态方法和实例方法都能访问.

  • 相关阅读:
    R语言用神经网络改进Nelson-Siegel模型拟合收益率曲线分析
    用R语言用Nelson Siegel和线性插值模型对债券价格和收益率建模
    R语言LME4混合效应模型研究教师的受欢迎程度
    R语言Black Scholes和Cox-Ross-Rubinstein期权定价模型案例
    R语言中的Nelson-Siegel模型在汇率预测的应用
    R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归
    LNMP搭建
    php高性能开发阅读笔记
    php 关于经纬度距离计算方法
    在已经部署svn 服务器上,搭建svn项目 成功版
  • 原文地址:https://www.cnblogs.com/PEIYANGXINQU/p/3479237.html
Copyright © 2011-2022 走看看