• Static变量和方法的一些理解


      静态变量:static,用static修饰符修饰的域是仅属于类的静态变量。静态变量是类中每个对象共享的变量,他们是类的变量,不属于任何一个类的具体对象,是一个公共的存储单元,任何一个类的对象访问它时,取到的都是相同的数值。

      静态初始化器:static,静态初始化器是又static关键字引导的一对大括号括起的语句组,其作用是在加载的时候,初始化类的静态变量。

      与构造函数的相同,都是为了初始化,但是又有所不同

      1.构造函数时对每个新创建的对象进行初始化,而静态初始化器是对类自身进行初始化。

      2.构造函数在用new运算符产生新对象时由系统自动执行,而静态初始化器则是在它所属的类加载到内存时由系统调用执行。

      3.不同于构造函数,静态初始化器不是方法,没有返回值,方法名,和参数。

      当在一个类中定义构造函数和静态初始化器时的调用顺序为,先调用静态初始化器,然后再调用构造函数

      当子类和父类都含有各自的构造函数和静态初始化器时,先调用父类的静态初始化器,然后调用子类的静态初始化器,接着再调用父类的构造函数,最后调用子类的构造函数。

     2 
     3 public class StaticMethod {
     4     public StaticMethod()
     5     {
     6         System.out.println("StaticMethod construter");
     7         
     8     }
     9     
    10     static{
    11         System.out.println("StaticMethod static method");
    12     }
    13     public static void main(String[] args) {
    14         StaticMethod sm = new StaticMethod();
    15     }

    结果为:

    StaticMethod static method
    StaticMethod construter

    当有子类和父类时情况如下:

     1 public class StaticMethod {
     2     public StaticMethod()
     3     {
     4         System.out.println("StaticMethod construter");
     5         
     6     }
     7     
     8     static{
     9         System.out.println("StaticMethod static method");
    10     }
    11 
    12 
    13 }
    14 public class StaticSun extends StaticMethod {
    15     public StaticSun()
    16     {
    17         System.out.println("Sun construter");
    18     }
    19     static{
    20         System.out.println("Sun static method");
    21     }
    22 
    23     public static void main(String[] args) {
    24         // TODO Auto-generated method stub
    25         StaticMethod sm = new StaticSun();
    26 
    27     }
    28 
    29 }

    结果为:

    StaticMethod static method
    Sun static method
    StaticMethod construter
    Sun construter
  • 相关阅读:
    大数据概述 106
    编译原理学习随笔 106
    我与ruby第一次接触
    xml在joomla表单中的应用详解
    joomla2.5传统组件开发解析
    joomla2.5开发系列教程原创(1)2.5与1.5异同点
    CSS2简写和常用css总结笔记
    C语言开发php扩展链接库初学
    ruby转战Ubuntu,真折腾?
    joomla搜索功能开发和结果分页探讨
  • 原文地址:https://www.cnblogs.com/luoweiKnowledge/p/4208194.html
Copyright © 2020-2023  润新知