1、类只有在使用New调用创建的时候才会被JAVA类装载器装入
2、JAVA类首次装入时,会对静态成员变量或方法进行一次初始化,但方法不被调用是不会执行的,静态成员变量和静态初始化块级别相同,非静态成员变量和非静态初始化块级别相同。
先初始化父类的静态代码--->初始化子类的静态代码-->
初始化父类的非静态代码--->初始化父类构造函数--->
初始化子类非静态代码--->初始化子类构造函数
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
分享到:
相关推荐
类中有构造函数用于初始化对象,以及`setzt`和`getzt`方法来设置和获取书籍的状态。状态是私有变量`zt`,表示书是否在馆或外借。`setzt`和`getzt`方法分别用来修改和查看书籍状态,这里使用了条件语句根据`zt`的值...
- `<jsp:useBean id="testInq" scope="page" class="ymbean.opDb"/>`: 创建并初始化一个名为 `testInq` 的 JavaBean,该 Bean 属于 `ymbean.opDb` 类。 - **Java 代码片段**:用于处理逻辑和数据库操作的部分,例如...
- **客户端源码**:《(三)Pushlet框架客户端js-pushlet-client.js分析-初始化分析.htm》对JavaScript客户端库进行了详细解读,特别是初始化过程,这对于前端开发者理解如何集成Pushlet到网页应用至关重要。...
3. **db.sql** - 这个文件很可能包含了数据库脚本,用于创建和初始化系统所依赖的数据表,对理解系统的数据模型和业务逻辑至关重要。 4. **说明文档.txt** - 这里可能包含了项目运行、部署和使用指南,帮助用户快速...
5. **建表SQL文件(hibernate.sql)**:这个文件包含了创建用户表的SQL语句,是数据库初始化的关键。开发者可以通过运行这个文件来设置好项目所需的数据库结构。 6. **zt1803_struts_LoginAndRegister**:这个文件...
7. **springbootj2zt8** - 这看起来可能是项目源代码的一部分,基于Spring Boot的Java应用程序,可能包含核心业务逻辑、控制器、配置类等。 综上所述,这个项目主要展示了如何利用Spring Boot构建一个大型创新项目...
1. **地图初始化**:在Activity或Fragment中加载百度地图SDK,设置地图显示样式和权限请求。 2. **位置监听**:注册位置监听器,获取用户位置更新,并在位置改变时触发相应事件。 3. **HTTP请求构建**:使用...
3. **db.sql**:这可能包含的是数据库脚本,用于初始化和设置系统所需的数据库结构。通过这些SQL语句,可以了解到系统数据模型的设计,包括各表的字段、关系等信息。 4. **说明文档.txt**:这可能是系统使用或部署...
然后在Activity中初始化底部导航条,并为其设置点击事件监听器。点击事件发生时,根据被点击的导航项,动态地替换或添加对应的Fragment。为了确保流畅的切换效果,可以使用`FragmentManager`的`beginTransaction()`...
在主活动中,初始化`ViewPager`和`TabLayout`,并将适配器设置给`ViewPager`: ```java public class MainActivity extends AppCompatActivity { private ViewPager viewPager; private TabLayout tabLayout; @...