`
xvm03
  • 浏览: 144360 次
  • 来自: ...
社区版块
存档分类
最新评论

java 类初始化--ZT

阅读更多

1、类只有在使用New调用创建的时候才会被JAVA类装载器装入

2JAVA类首次装入时,会对静态成员变量或方法进行一次初始化,但方法不被调用是不会执行的,静态成员变量和静态初始化块级别相同,非静态成员变量和非静态初始化块级别相同。

先初始化父类的静态代码--->初始化子类的静态代码-->

初始化父类的非静态代码--->初始化父类构造函数--->

初始化子类非静态代码--->初始化子类构造函数

3、创建类实例时,首先按照父子继承关系进行初始化

4、类实例创建时候,首先初始化块部分先执行,然后是构造方法;然后从

本类继承的子类的初始化块执行,最后是子类的构造方法

5、类消除时候,首先消除子类部分,再消除父类部分

 

 

实例:

        abstract class base

        {

          public int age=getNumber(100);

         static

         {

           System.out.println("base static block");

        }

        {

           System.out.println("base nonstatic block");

         }

    static int sage=getNumber(50);

    base()

    {

        System.out.println(age);

        System.out.println("base start");

        draw();//会调用子类覆盖后的方法

        System.out.println("base end");

        

    }

    static int getNumber(int base)

    {

        System.out.println("base.getNumber int"+base);

        return base;

    }

    public  void draw()

    {

        System.out.println("base.draw");

    }

}

public class initializeOrder extends base{

    public int age=getNumber(1001);

    private int _radius=getNumber(10);

    static int sage=getNumber(250);

    static

    {

        System.out.println("subclass static block");

    }

    {

        System.out.println("subclass nonstatic block");

    }

    initializeOrder(int radius)

    {

        _radius=radius;

        System.out.println(age);

        System.out.println("initializeOrder initialized");

    }

    public void draw()

    {

        System.out.println("initializeOrder.draw "+_radius);

    }

    /** *//**

     * @param args

     */

    public static void main(String[] args) {

        // TODO Auto-generated method stub

        new initializeOrder(1000);

    }

}


 运行结果:

C:\java>java    initializeOrder
base static block
base.getNumber int50
base.getNumber int250
subclass static block
base.getNumber int100
base nonstatic block
100
base start
initializeOrder.draw 0
base end
base.getNumber int1001
base.getNumber int10
subclass nonstatic block

1001
initializeOrder initialized


分享到:
评论

相关推荐

    java试题知识点.pdf

    类中有构造函数用于初始化对象,以及`setzt`和`getzt`方法来设置和获取书籍的状态。状态是私有变量`zt`,表示书是否在馆或外借。`setzt`和`getzt`方法分别用来修改和查看书籍状态,这里使用了条件语句根据`zt`的值...

    简单jsp留言板程序

    - `<jsp:useBean id="testInq" scope="page" class="ymbean.opDb"/>`: 创建并初始化一个名为 `testInq` 的 JavaBean,该 Bean 属于 `ymbean.opDb` 类。 - **Java 代码片段**:用于处理逻辑和数据库操作的部分,例如...

    pushlet的笔记

    - **客户端源码**:《(三)Pushlet框架客户端js-pushlet-client.js分析-初始化分析.htm》对JavaScript客户端库进行了详细解读,特别是初始化过程,这对于前端开发者理解如何集成Pushlet到网页应用至关重要。...

    课设毕设springboot基于springboot的大创管理系统-LW+源码可运行.zip

    3. **db.sql** - 这个文件很可能包含了数据库脚本,用于创建和初始化系统所依赖的数据表,对理解系统的数据模型和业务逻辑至关重要。 4. **说明文档.txt** - 这里可能包含了项目运行、部署和使用指南,帮助用户快速...

    jsp+hibernate+struts2简单登录和注册

    5. **建表SQL文件(hibernate.sql)**:这个文件包含了创建用户表的SQL语句,是数据库初始化的关键。开发者可以通过运行这个文件来设置好项目所需的数据库结构。 6. **zt1803_struts_LoginAndRegister**:这个文件...

    springboot070基于springboot的大创管理系统.zip

    7. **springbootj2zt8** - 这看起来可能是项目源代码的一部分,基于Spring Boot的Java应用程序,可能包含核心业务逻辑、控制器、配置类等。 综上所述,这个项目主要展示了如何利用Spring Boot构建一个大型创新项目...

    baidumap httpclient

    1. **地图初始化**:在Activity或Fragment中加载百度地图SDK,设置地图显示样式和权限请求。 2. **位置监听**:注册位置监听器,获取用户位置更新,并在位置改变时触发相应事件。 3. **HTTP请求构建**:使用...

    基于Springboot的大创管理系统

    3. **db.sql**:这可能包含的是数据库脚本,用于初始化和设置系统所需的数据库结构。通过这些SQL语句,可以了解到系统数据模型的设计,包括各表的字段、关系等信息。 4. **说明文档.txt**:这可能是系统使用或部署...

    底部导航条

    然后在Activity中初始化底部导航条,并为其设置点击事件监听器。点击事件发生时,根据被点击的导航项,动态地替换或添加对应的Fragment。为了确保流畅的切换效果,可以使用`FragmentManager`的`beginTransaction()`...

    Android 选项卡

    在主活动中,初始化`ViewPager`和`TabLayout`,并将适配器设置给`ViewPager`: ```java public class MainActivity extends AppCompatActivity { private ViewPager viewPager; private TabLayout tabLayout; @...

Global site tag (gtag.js) - Google Analytics