`

Java中初始化数据域的四种方法

阅读更多
1.在构造器中设置值
/**
 * 
 */
package jry;

/**
 * @author freewill
 * 
 */
public class InitFiledByConstructor {
	int id;
	String name;

	public InitFiledByConstructor(int id, String name) {
		this.id = id;
		this.name = name;
	}

	public static void main(String[] args) {
		InitFiledByConstructor a = new InitFiledByConstructor(23, "Jordan");
		System.out.println(a.id + a.name);
	}
}

2.在声明中赋值,这个太简单了,代码就不上了
3.显示域初始化
/**
 * 
 */
package jry;

/**
 * @author freewill
 * @desc 显示域初始化
 * @see Java Core page122
 */
public class InitDemo {
	static int nextId = 0;
	int id = assignId();

	static int assignId() {
		int r = nextId;
		nextId++;
		return r;
	}

	/**
	 * @param args
	 * @desc Testcase
	 */
	public static void main(String[] args) {
		System.out.println(new InitDemo().id);
		System.out.println(new InitDemo().id);
	}
}

4.初始化块
/**
 * 
 */
package jry;

/**
 * @author freewill
 * @desc 初始化块 Core Java page124
 */
public class InitFiledByBlock {
	private static int nextId;
	private int id;
	private String name;
	private double salary;

	public InitFiledByBlock(String n, double s) {
		this.name = n;
		this.salary = s;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public double getSalary() {
		return salary;
	}

	public void setSalary(double salary) {
		this.salary = salary;
	}

	{
		id = nextId;
		nextId++;
	}

	/**
	 * @param args
	 * @desc Testcase
	 */
	public static void main(String[] args) {
		InitFiledByBlock c = new InitFiledByBlock("Jordan", 2300);
		System.out.println(c.getId() + c.getName() + c.getSalary());
		InitFiledByBlock d = new InitFiledByBlock("James", 2000);
		System.out.println(d.getId() + d.getName() + d.getSalary());
	}
}

补充知识:调用构造器的具体处理步骤
·所有数据域被初始化为默认值(0、false、null)
·按照在类声明中出现的次序,依次执行所有域初始化语句和初始化块
·如果构造器第一行调用了第二个构造器,则执行第二个构造器主体
·执行这个构造器的主题
see Core Java page125
分享到:
评论

相关推荐

    java初始化和清理

    Java初始化和清理是Java语言中非常重要的两个过程,它们确保了Java程序的正确运行和资源的有效管理。Java的初始化包括类的加载、连接和初始化三个过程,而清理则主要指垃圾回收机制。 首先,Java初始化的主要特性...

    Java初始化顺序1

    Java 中的初始化顺序是按照定义的顺序进行的,而静态变量的初始化顺序则是按照定义的顺序,并且只在第一次访问时初始化。 Java 初始化顺序的知识点总结: * 类变量(静态变量)和实例变量(对象变量)的区别 * ...

    Java创建和填充PDF表单域方法

    在Java编程中,创建和填充PDF表单域是一项常见的任务,尤其在数据处理和报告生成领域。本篇文章将深入探讨如何使用Java实现这一功能,并提供一个详细的步骤和示例代码。 首先,表单域是PDF文档中用于用户交互的重要...

    Java实例域初始化方法及顺序

    Java实例域初始化是Java编程语言中的一种初始化方式,用于初始化Java实例域的值。在这篇文章中,我们将详细介绍Java实例域初始化的方法和顺序,通过示例代码,介绍了Java实例域初始化的详细过程。 构造器初始化 ...

    JAVA使用Ldap操作AD域的方法示例

    在本文中,我们将深入探讨如何使用Java通过Ldap与Active Directory (AD)域进行交互。首先,我们需要了解AD域是一个集中式服务,用于管理网络中的用户、计算机和其他资源的身份和权限。Ldap(轻量级目录访问协议)是...

    java的静态域实例域

    在Java编程中,类的域(也称为字段或变量)分为两种主要类型:静态域(static fields)和实例域(instance fields)。理解这两者的区别及其与构造方法的关系是编写高效、可维护Java代码的关键。 首先,让我们深入...

    Java类加载连接和初始化原理解析

    Java类加载连接和初始化...Java类加载连接和初始化原理分析是Java虚拟机中一个非常重要的机制,它们共同完成了类从加载到初始化的整个过程。理解类加载连接和初始化原理可以帮助我们更好地理解Java语言的机制和实现。

    java元数据——CLass类

    4. 对于引用数据类的引用(必须初始化),可以通过 Object 类继承的 getClass() 方法获取这个引用的Class对象由于引用已经被初始化,所以这种方式也不会初始化静态域,因为静态域已经被初始化过。另外,前面的方式...

    Thinking in Java 中文第四版+习题答案

    7.6.2 方法和作用域中的内部类 7.6.3 链接到外部类 7.6.4 static内部类 7.6.5 引用外部类对象 7.6.6 从内部类继承 7.6.7 内部类可以覆盖吗? 7.6.8 内部类标识符 7.6.9 为什么要用内部类:控制框架 7.7 构建器和...

    Thinking in java4(中文高清版)-java的'圣经'

    2.1 用引用操纵对象 2.2 必须由你创建所有对象 2.2.1 存储到什么地方 2.2.2 特例:基本类型 2.2.3 Java中的数组 2.3 永远不需要销毁对象 2.3.1 作用域 2.3.2 对象的作用域 2.4 创建新的数据类型:类 2.4.1 域和方法 ...

    Java数据结构和算法

    - 使用结构体(`struct`)或类(`class`)定义链表节点(`ListNode`),包含数据域(`data`)和指向下一个节点的指针(`next`)。 - 定义链表操作类,包括插入、删除节点、显示链表内容等方法。 整体来看,这份资料向初学者...

    Java中类的生命周期

    在Java中,类的生命周期是从类被加载、连接、初始化开始,直到类被卸载结束。 ##### 加载阶段 - **加载的目标** 加载阶段的最终目标是实现将编译后的`.class`文件中的二进制数据加载到JVM的运行时数据区的方法区...

    南理工java课程设计课件

    初始化器允许我们在声明域时直接赋值,可以是常量、其他域的值或方法调用。 5.3 访问控制 Java提供了四种访问控制级别:public(公共)、private(私有)、protected(受保护)和默认(包级私有)。public成员可以...

    Java常见面试题 还没写完.docx

    本文档涵盖了Java面试中的常见问题,涉及到结构化程序设计、面向对象程序设计、类和对象、继承、多态、封装、抽象、构造器、static域和方法、final关键字、重载、方法签名、方法头、方法体、域的默认初始化值、无...

    java链表是一种数据结构.docx

    这个类中包括数据域和指针域(在Java中称为“引用”)。下面详细介绍如何实现这样一个类: ```java public class ListNode { int val; // 数据域,用于存储节点的数据 ListNode next; // 引用域,用于指向下一个...

    Java构造方法.pdf

    基于上述构造方法的特性,可利用它来对对象的数据成员做初始化的赋值。 参考文献 [1] download.csdn/detail/fdshthtrbv/3187739-Java 基础教程 [2] zhidao.baidu/link?url=NWvwGG9UIzPJzRw9d_jawoyGVUNkOjN_...

    java内置对象简介、四种属性范围的一些源代码

    ServletContext的生命周期始于应用启动,终于应用关闭,因此它是四种作用域中范围最广的。 源代码示例通常会包含如何初始化这些对象,设置和获取属性,以及如何在不同页面或请求之间传递数据。这些文件名暗示了每种...

    Java程序设计:实验四 面向对象程序设计一.doc

    构造方法是类的一种特殊方法,用于初始化对象的状态。构造方法的名称与类名相同,且没有返回类型。构造方法可以有多个参数,用于初始化对象的属性。在本实验中,我们定义了一个构造方法对Box类的三个变量进行初始化...

Global site tag (gtag.js) - Google Analytics