`
spacefly
  • 浏览: 276132 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

类中变量的初始化

    博客分类:
  • java
阅读更多

这位老兄 对类的初始化讲的太好了,  http://zangweiren.iteye.com/blog/208122

 

下面引用他的结论:

1)单个类内进行初始化时顺序

  1. 静态变量 & 静态初始化块
  2. 变量 & 初始化块
  3. 构造器

2)继承中类初始化时顺序

  1. 父类--静态变量 & 父类--静态初始化块
  2. 子类--静态变量 & 子类--静态初始化块
  3. 父类--变量 & 父类--初始化块
  4. 父类--构造器
  5. 子类--变量 & 子类--初始化块
  6. 子类--构造器

3)静态变量 vs 静态初始化块

静态变量和静态初始化块的优先级是相同的,依照他们在类中的定义顺序决定初始化的顺序,即谁先定义就先初始化谁。

 

4)变量 vs 初始化快

遵循和 3) 中同样的规则,即它们是相同优先级的,定义顺序决定初始化顺序,先定义的先初始化。

 

补充说明:

静态初始化块 是前面加了 static 关键字的 花括号,如 static {...}

初始化块 是花括号,如 {...}

分享到:
评论

相关推荐

    C++全局变量初始化的一点总结

    注意:本文所说的全局变量指的是 variables with static storage,措词来自 c++ 的语言标准文档。  什么时候初始化 ...  static initialization: 静态初始化指的是用常量来对变量进行初始化,主要包括 zero init

    java类变量初始化顺序

    详细讲解java类中静态变量,普通标量,对象、基本类型的初始化顺序。

    易语言静态变量初始化

    易语言静态变量初始化源码,静态变量初始化,静态变量初始化例子

    解决C++全局变量只能初始化不能赋值的问题

    C++中,全局变量只能声明、初始化,而不能赋值 也就是说,下面这样是不被允许的: #include using namespace std; int a; a = 2; int main() { return 0; } 错误提示是: C++ requires a type specifier for all...

    Java类加载器:静态变量初始化.docx

    在本文中,我们讨论了 Java 类加载器中的静态变量初始化机制,了解了静态变量的初始化顺序和类加载器的生命周期。通过对静态变量初始化机制的理解,我们可以更好地掌握 Java 语言的基础知识,并更好地应用 Java 语言...

    VC++全局变量初始化-16.09.26

    重点说明了VC++全局变量动态初始化的顺序

    Keil MDK下如何设置非零初始化变量

    一些工控产品,当系统复位后(非上电复位),可能要求保持住复位前RAM中的数据,用来快速恢复现场,或者不至于因瞬间复位而重启现场设备。...如何设置非初始化数据变量不被零初始化,这是本篇文章所要探讨的。

    易语言源码易语言静态变量初始化源码.rar

    易语言源码易语言静态变量初始化源码.rar 易语言源码易语言静态变量初始化源码.rar 易语言源码易语言静态变量初始化源码.rar 易语言源码易语言静态变量初始化源码.rar 易语言源码易语言静态变量初始化源码.rar ...

    易语言静态变量初始化源码.zip

    易语言静态变量初始化源码.zip这个是易语言源码,希望是你需要的例程,只有学习才会进步,感谢你的关注。谢谢

    详解C++中变量的初始化规则

    函数体外定义的变量初始成0;函数体内定义的变量不进行自动初始化。除了用作赋值操作的左操作数,其他任何使用未初始化变量的行为都是未定义的,不要依赖未定义行为。 以int类型为例,一段简单的测试代码: #...

    (单片机C语言)变量的初始化

    通过实例说明初始化对程序的影响。 有许多书上说,变量最好要赋初值。但是为什么要初值呢?不赋初值可能会出现什么样的意外呢?以下就我在以51单片机为MCU,Keil为编译器看到的实现现象作分析。

    java面试题-类的初始化顺序.doc

    我们大家都知道,对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序依次是(静态变量、静态初始化块)>(变量、初始化块)>构造器。我们也可以通过下面的测试代码来验证这一点:

    TIA博途学习 | 优化的DB块中添加变量时不想初始化DB块怎么做?.docx

    TIA博途学习 | 优化的DB块中添加变量时不想初始化DB块怎么做?

    MDK下怎样才能让变量在复位时不被初始化

    最近一个项目需要保存一下临时数据,而产品容易受干扰而...所以需要保存一下数据,那么只有在系统复位时候不再初始化变量即可。对应MDK(keil)来说是一个比较麻烦的问题。通过网络上找了大量资料和测试发现终于可以了。

    g++中的局部静态变量的初始化机制及线程安全

    g++中的局部静态变量的初始化机制及线程安全 在 C++ 中,局部静态变量的初始化机制是一种特殊的机制,它可以延迟初始化,直到第一次使用该变量时。这是一种 lazy initialization 机制,能够避免在程序启动时进行...

    全局变量初始化导致的dll加载失败工程

    本附件是相关博文的示例工程,欢迎有需要的小伙伴下载。下载后使用vs2013直接可以编译测试。希望感兴趣的小伙伴能亲自动手实战。

    C++中类成员变量初始化总结

    考虑一下效率的可以再构造函数的初始化列表中进行。  class CA  {  public:  int data;  ……  public:  CA();  ……  };  CA::CA():data(0)//……#1……初始化列表方式  {  //data = 0;//...

    C++类成员和数据成员初始化总结

    C++类成员和数据成员初始化总结 C++为类中提供类成员的初始化列表 类对象的构造顺序是这样的: ...类里面的任何成员变量在定义时是不能初始化的。 2.一般的数据成员可以在构造函数中初始化。

    c++ 基本知识--类定义、初始化、析构(曹阳).ppt

    本文将对 C++ 中的类定义、初始化和析构进行详细的阐述。 1.1 类的定义 在 C++ 中,类是一种新的数据类型,而对象是具有这种类型的变量。类就是对同类对象的属性和行为进行统一描述。属性用数据表示,行为用函数...

    C++的变量默认初始化规则

    C++的变量默认初始化规则

Global site tag (gtag.js) - Google Analytics