Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 316|回复: 0

[Java基础知识]java类的初始化顺序

[复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-10-1 16:01:14 | 显示全部楼层 |阅读模式
    1. abstract class base
    2. {
    3.     public int age=getNumber(100);
    4.     static
    5.     {
    6.         System.out.println("base static block");
    7.     }
    8.     {
    9.         System.out.println("base nonstatic block");
    10.     }
    11.     static int sage=getNumber(50);
    12.     base()
    13.     {
    14.         System.out.println(age);
    15.         System.out.println("base start");
    16.         draw();//会调用子类覆盖后的方法
    17.         System.out.println("base end");
    18.         
    19.     }
    20.     static int getNumber(int base)
    21.     {
    22.         System.out.println("base.getNumber int"+base);
    23.         return base;
    24.     }
    25.     public  void draw()
    26.     {
    27.         System.out.println("base.draw");
    28.     }
    29. }
    30. public class initializeOrder extends base{
    31.     public int age=getNumber(1001);
    32.     private int _radius=getNumber(10);
    33.     static int sage=getNumber(250);
    34.     static
    35.     {
    36.         System.out.println("subclass static block");
    37.     }
    38.     {
    39.         System.out.println("subclass nonstatic block");
    40.     }
    41.     initializeOrder(int radius)
    42.     {
    43.         _radius=radius;
    44.         System.out.println(age);
    45.         System.out.println("initializeOrder initialized");
    46.     }
    47.     public void draw()
    48.     {
    49.         System.out.println("initializeOrder.draw "+_radius);
    50.     }
    51.     /** *//**
    52.      * @param args
    53.      */
    54.     public static void main(String[] args) {
    55.         // TODO Auto-generated method stub
    56.         new initializeOrder(1000);
    57.     }
    58. }

    59. 运行结果:
    60. C:java>java    initializeOrder
    61. base static block
    62. base.getNumber int50
    63. base.getNumber int250
    64. subclass static block
    65. base.getNumber int100
    66. base nonstatic block
    67. 100
    68. base start
    69. initializeOrder.draw 0
    70. base end
    71. base.getNumber int1001
    72. base.getNumber int10
    73. subclass nonstatic block
    74. 1001
    75. initializeOrder initialized
    复制代码
    C:java> 总结:
    1、类只有在使用New调用创建的时候才会被JAVA类装载器装入
    2、JAVA类首次装入时,会对静态成员变量或方法进行一次初始化,但方法不被调用是不会执行的, 静态成员变量和静态初始化块级别相同,非静态成员变量和非静态初始化块级别相同。
    先初始化父类的静态代码--->初始化子类的静态代码-->
    初始化父类的非静态代码--->初始化父类构造函数--->
    初始化子类非静态代码--->初始化子类构造函数
    3、创建类实例时,首先按照父子继承关系进行初始化
    4、类实例创建时候,首先初始化块部分先执行,然后是构造方法;然后从
    本类继承的子类的初始化块执行,最后是子类的构造方法
    5、类消除时候,首先消除子类部分,再消除父类部分


    1.                      
    复制代码

      
      
      
       
      
      
      

      



                            function TempSave(ElementID)
                            {
                                    CommentsPersistDiv.setAttribute("CommentContent",document.getElementById(ElementID).value);
                                    CommentsPersistDiv.save("CommentXMLStore");
                            }
                            function Restore(ElementID)
                            {
                                    CommentsPersistDiv.load("CommentXMLStore");
                                    document.getElementById(ElementID).value=CommentsPersistDiv.getAttribute("CommentContent");
                            }
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-4 23:13 , Processed in 0.383862 second(s), 46 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表