`

变量定义的初始化顺序

阅读更多
//#java编程思想P94
//在类的内部, 定义变量的先后顺序决定了初始化的顺序。 即使变量定义分布于方法定义之间, 它们仍旧会在任何方法(包括构造器)被调用之前得到初始化。
package com.ztao2333.service;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;


class Window{
	Window(int maker){
		System.out.println("Window" + maker);
	}
}
class House{
	Window w1 = new Window(1);//Before 构造器
	House(){
		//构造器中
		System.out.println("House");
		w3 = new Window(33);//重新初始化  w3
	}
	
	Window w2 = new Window(2);  //After 构造器
	void f() {
		System.out.println("f");
	}
	Window w3 = new Window(3);//end
}
public class test {
	public static void main(String[] args) {
		House h = new House();
		h.f();
	}
}

/* Output
Window1
Window2
Window3
House
Window33
f
*/
分享到:
评论

相关推荐

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

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

    关于C++中构造函数初始化成员列表的总结

     初始化列表的初始化顺序是依据类成员变量定义的顺序来决定的。 3.关于static const是否应该在初始化成员列表中初始化?  static const为全局静态常量,全局的意思是该变量属于整个类而非某个类实例,所以不能再...

    java顺序表的基本操作.docx

    在Java中,顺序表(Sequential List)是一种常见的线性数据结构,它以连续的...可以选择使用数组的静态初始化或动态初始化来创建顺序表。 可以定义一个变量来记录顺序表的大小,也可以直接使用数组的长度。 插入元素:

    纯C语言实现顺序表附加源码

    2. 初始化顺序表:初始化顺序表时,将顺序表的长度设置为0。 3. 插入元素:在顺序表的指定位置插入一个元素。插入元素时,需要将插入位置之后的元素依次后移,然后将要插入的元素放入指定位置。 4. 删除元素:删除...

    c语言结构体变量课件

    (1) 学会和掌握结构体类型的定义方法和结构体变量的定义及初始化。 (2) 学会和掌握结构体数组的定义、初始化以及使用。 (3) 学会和掌握结构体类型指针的定义和使用。 过程与方法: (1) 培养学生对新事物的...

    关于JVM的总结

    类被加载到虚拟机内存开始,到卸载出内存为止,生命周期包含: 加载,验证,准备,解析,初始化,使用,卸载 7个阶段,加载,验证,准备,初始化和卸载这5个顺序是确定的,解析阶段则不一定,他在某些情况下可以在...

    JAVA基础知识精华总结 收藏

    未创建此类对象)的静态对象时,所有的静态变量也要按它们在类中的顺序初始化。 2、 继承时,对象的初始化过程 (1) 主类的超类由高到低按顺序初始化静态成员,无论静态成员是否为private。 (2) 主类静态成员的...

    conman:ConMan容器初始化器

    骗子ConMan是一个容器初始化程序,它使用环境变量,命令行参数和配置文件来呈现模板,设置环境变量并执行二进制文件。 它旨在用作容器的init,以避免编写某种形式的bash脚本来为您完成所有繁琐的工作。手术ConMan...

    Jmeter 各组件执行顺序与作用域

     配置元件的作用主要为了初始化默认值和变量,以便后续采样器引用。相对于JAVA 语言中间定义一些常量和静态变量。配置元件作用域是最初始阶段处理,配置元件仅对其所在的测试树分支有效,在同一个作用域的任何采样...

    非常经典的c++ primer视频教程6-10

    6.6.5 switch内部的变量定义 6.7 while语句 6.8 for循环语句 6.8.1 省略for语句头的某些部分 6.8.2 for语句头中的多个定义 6.9 do while语句 6.10 break语句 6.11 continue语句 6.12 goto语句 6.13 try块和...

    fields2struct:fields2struct 提供了一种简洁但强大的初始化结构的方法-matlab开发

    初始化结构有助于分配和确保结构中字段的顺序是明确定义的(程序员偏好)。 当一个结构有很多字段并且它们都是空的时,它很笨拙写 s = struct('a',[],'b',[],'c',[], ... )。 fields2struct 提供了一个使用 a、b、c....

    Visual C++开发实战1200例 第3章

    实例080结构体变量的初始化 实例081如何使用嵌套结构 实例082将结构作为参数传递并返回 实例083共用体数据类型的定义 实例084共用体变量的初始化 实例085如何使用匿名共用体 实例086枚举类型的定义与使用 实例087用...

    Google Objective-C Style Guide 中文版

    Google Objective-C Style Guide 中文版 目录 ...Dealloc中应该按声明的顺序处理成员变量 Setters中对NSString进行copy 避免抛出异常 nil的检查 BOOL陷阱 属性 Cocoa模式 委托模式 模型-视图-控制器

    python实现代数多项式运算

    初始化多项式:在多项式类中,定义初始化方法,用于设置多项式的初始状态。可以传入一个系数列表或字典作为参数,根据输入的系数和指数来构建多项式对象。 实现加法和减法运算:在多项式类中,定义加法和减法方法,...

    输入解析器变得简单:轻松地将用户输入加载到调用环境变量/参数中。-matlab开发

    建议用户在调用此函数之前加载默认值,以保证所有变量都已初始化。 用户输入将被默认的 Matlab 方式解释,只有当其他两种方法都没有解释输入时。 注意:Matlab "inputParser" 基本相同,但我发现我的函数更易于使用...

    C++基础及进阶讲解

    ②调用对象成员构造函数的顺序与写在成员初始化列表中的顺序无关,而与对象成员的定义顺序有关,先定义的先调用。如将例10.16中的A行改写为: Line(int x1, int y1, int x2, int y2, int w, int c) : p2(x2, y2),...

    谭浩强C语言对应C语言课程PPT.zip

    6.变量的存储类型与变量的初始化(领会): 7.编译预处理(领会): 六.文件 1.文件的基本概念,C语言中的两种文件(识记) 2.文件的打开、关闭和文件结束测试,文件的读写,文件的定位(识记) 2.1文件操作...

    C语言经典问答摘录.txt

    1.这样的初始化有什么问题?char *p = malloc(10); 编译器提示“非法初始式” 云云。 答:这个声明是静态或非局部变量吗?函数调用只能出现在自动变量(即局部非静态变量) 的初始式中。 因为静态变量的地址必须在编译...

    用C++ 实现 简单的反射功能

    在 ClassFactory 类中,使用了一个静态的 map 成员变量来保存注册的类和对应的创建函数,get_map() 函数用来获取这个 map 的引用,避免了初始化顺序的问题。 工厂模式可以有效地解耦客户端代码和对象创建过程,有助...

    java深入解析

    193 话题29 按部就班——初始化顺序与向前引用 206 第5章 类与接口 220 话题30 相辅相成——基本数据类型与包装类 220 话题31 分门别类——数组的阐述 232 话题32 规矩方圆——定义规范的接口类型 242 话题33 彻里至...

Global site tag (gtag.js) - Google Analytics