调用构造器的处理步骤

调用构造器的具体处理步骤:

1)所有数据域被初始化为默认值(0,false,null)

2)按照在类中出现的次序,依次执行所有域初始化语句和初始化块

3)如果构造器第一行调用了第二个构造器,则执行第二个构造器主体

4)执行这个构造器的主体

public class TestConstructLoad {

	public static void main(String[] args) {
		new ConstructorLoad(1);
	}
}

class ConstructorLoad {

	//1.所有数据域被初始化为默认值(0,false,null)
	private int a;
	private String b = "xxxxxxxxx";

	//2.按照在类中出现的次序,依次执行所有域初始化语句和初始化块
	{
		System.out.println("初始化块a=" + a + ",b=" + b);
		a = 10;
	}

	//3.如果构造器第一行调用了第二个构造器,则执行第二个构造器主体
	public ConstructorLoad() {
		System.out.println("ConstructorLoad无参数");
	}

	//4.执行这个构造器的主体
	public ConstructorLoad(int a) {
		this();
		System.out.println("ConstructorLoad有参数,a=" + this.a + ",b=" + this.b);
		this.a = 20;
	}
}

调用构造器的处理步骤

时间: 2024-08-28 09:23:07

调用构造器的处理步骤的相关文章

Java 类加载、调用构造器、执行方法的过程

注:整理到这部分知识点时候发现有很多问题还没搞清楚,所以这里可能会存在很多不够详细甚至错误的理解,准备翻一遍编程思想再来更新, 欢迎评论交流 当JVM执行到这么一句代码:  new Person().setName("superzhao") 它会做这么几件事 类加载 JVM会用类加载器加载xxx.Person这个class文件 加载(class){ if(class有父类){ 加载(superclass); } 1.静态域申明,默认初始化为0,false,null 2.按照申明顺序(从

android 调用jni 的简单步骤

1.交叉编译   在Linux下的文件主要是.elf等格式 在window下执行的文件为.EXE  JNI就是联系两者 谷歌提供了一个工具-NDK 2.步骤:  1. 在java中定义方法 public native String sayHello(): 2. 在工程中创建jni 文件夹,并创建hello.c 文件 在其中编写C代码: 3.  先声明 #include<stdio.h> #include<stdlib.h> #include<jni.h>//jobjec

java 调用构造器就创建对象吗?

直接上代码: class Father {     private String aaa = "我来测试";     public Father() {         System.out.println("father this.getClass():"+this.getClass());//表示当前运行时的对象的class         System.out.println("father this.hashCode(:"+this.ha

[原创][FPGA]Quartus中调用Modelsim波形仿真步骤说明

1     建立Quartus和Modelsim的连接 如果是首次使用,需建立连接.Tools->Options->EDA Tools Option,在Modelsim-Altera处选择应用软件路径.比如“D:\altera\13.0\modelsim_ae\win32aloem”这种. 2.     建立测试文件 Processing->Start->Start Test Bench Template Writer,建立好之后自行进行编写测试文件.13.0版本的vt测试文件在.

简单servlet调用dao层完整步骤

导入包lib(文件名称) 目录结构:web下:views.web-inf.index.jsp views下各种jsp文件和js(里面放封装好的jquery包) js下:jquery包(js文件后缀) web-inf目录下:classes(编译输出路径).lib. web.xml 首先编写index.jsp文件 <form method="post" action="/touhou/isLogin"> <input type="text&q

[读书笔记]java核心技术

ps:有时间好好整理下格式.从别的编辑器拷贝过来啥都没了. ~~~~~~~~~~~~~~· 2.java程序设计环境 JDK 开发java使用的软件: JRE 运行java使用的软件: SE 用于桌面或简单服务器应用的java平台--废弃 EE 用于复杂服务器应用的java平台--通用. ME 手机或其他小型设备的java平台--废弃 库源文件和文档: src.zip---包含了所有公共类库的源代码. JDK目录结构: bin 编译器和工具, demo演示, docs 类库文档,include

引入多态后构造器的调用顺序

前言 基类的构造器总是在导出类的构造过程中被调用,而且按照继承层次逐渐向上链接,以使每个基类的构造器都能得到调用.这样做是有意义的,因为构造器具有一项特殊任务:检查对象是否被正确的构造.导出类只能访问它自己的成员,不能访问基类中的成员(基类成员通常是private类型).只有基类的构造器才具有恰当的知识和权限来对自己的元素进行初始化.因此,必须令所有构造器都得到调用,否则就不可能正确构造完整对象.这正是编译器为什么要强制每个导出类部分都必须调用构造器的原因.在导出类的构造器主体中,如果没有明确指

java中构造器的调用顺序

在编程的过程中,我们经常会遇到多个类的继承问题,那么多个类的构造器是按照什么顺序调用的呢? 先看一段代码: 1 public class Meal { 2 public Meal() { 3 System.out.println("meal constructor() "); 4 } 5 } 6 7 public class Bread { 8 public Bread() { 9 System.out.println("bread constructor() ")

android开发教程(4)— jni编程之采用 javah 从java调用C++

用Java调用C/C++代码 当无法用 Java 语言编写整个应用程序时,JNI 允许您使用本机代码.在下列典型情况下,您可能决定使用本机代码: 希望用更低级.更快的编程语言去实现对时间有严格要求的代码. 希望从 Java 程序访问旧代码或代码库. 需要标准 Java 类库中不支持的依赖于平台的特性. 须知:SWIG和javah的区别(强烈推荐) 我看了网上的关于 jni编程 的教程很多,但不尽相同,刚开始会犯迷糊.我想笔者往往忽略了一个关键点,那就是采用了什么方式决定了步骤的流程.有两种生成