关于初始化
--------------------------------------------------------------------------------------------------------------------------------
1 成员变量初始化
1.1 自动初始化
boolean -----初始值----> false
char -----初始值----> (char)0
byte -----初始值----> 0
short -----初始值----> 0
int -----初始值----> 0
long -----初始值----> 0
float -----初始值----> 0.0
double -----初始值----> 0.0
对象 -----初始值----> null
数组内部元素的初始值按上面的要求初始化.
1.2 指定初始化
指定初始化就是在变量后跟一个值.如:int i = 12;
1.3 构造器初始化.
构造器初始化就是在构造器中为成员变量赋值.
如:
class A{
int i;
A(int n){
this.i = n;
}
}
2 局部变量初始化
局部变量不能自动初始化,不能构造器初始化,一定要直接初始化.否则是不可用的.
--------------------------------------------------------------------------------------------------------------------------------
成员变量的初始化: 自动初始化先于直接初始化, 直接初始化先于构造器初始化.
--------------------------------------------------------------------------------------------------------------------------------
成员变量初始化顺序:
在类的内部,变量定义的先后顺序决定了初始化的顺序.即使变量定义散布于方法定义之间,它们仍然会在任何
方法(包括构造器)被调用之前得到初始化.
--------------------------------------------------------------------------------------------------------------------------------
静态成员变量初始化:
静态成员变量初始化与非静态成员变量初始化是一样的.
只是静态成员变量只初始化一次.而且静态成员变量的初始化先于非静态成员变量.
静态成员变量的初始化前提是: 创建该类的对象时或引用该类的静态变量时或调用该类的静态方法时.
--------------------------------------------------------------------------------------------------------------------------------
测试代码
1.package test;
2.
3./**
4. * 关于成员变量初始化
5. *
6. * @author fhd001
7. */
8.public class ValueTest {
9.
10. int n = 2; // 指定初始化
11. boolean flag; // 自动初始化
12. static int n1;
13. static boolean flag2;
14.
15. static{
16. //静态初始化先于非静态初始化.
17. System.out.println("静态初始化: "+n1);
18. flag2 = true;
19. System.out.println("静态初始化: "+flag2);
20. }
21.
22. public ValueTest() {
23. }
24.
25. public ValueTest(int k, boolean f) {
26. // 指定初始化先于构造器初始化
27. System.out.println(n);
28. // 自动初始化先于构造器初始化.
29. System.out.println(flag);
30. this.n = k;
31. this.flag = f;
32. System.out.println(n);
33. System.out.println(flag);
34. // 自动初始化先于指定初始化,无法测试.略.
35. }
36.
37. public static void main(String[] args) {
38.
39. ValueTest t = new ValueTest(38, true);
40. }
41.}
package test;
/**
* 关于成员变量初始化
*
* @author fhd001
*/
public class ValueTest {
int n = 2; // 指定初始化
boolean flag; // 自动初始化
static int n1;
static boolean flag2;
static{
//静态初始化先于非静态初始化.
System.out.println("静态初始化: "+n1);
flag2 = true;
System.out.println("静态初始化: "+flag2);
}
public ValueTest() {
}
public ValueTest(int k, boolean f) {
// 指定初始化先于构造器初始化
System.out.println(n);
// 自动初始化先于构造器初始化.
System.out.println(flag);
this.n = k;
this.flag = f;
System.out.println(n);
System.out.println(flag);
// 自动初始化先于指定初始化,无法测试.略.
}
public static void main(String[] args) {
ValueTest t = new ValueTest(38, true);
}
}
结果代码
1.静态初始化: 0
2.静态初始化: true
3.2
4.false
5.38
6.true
分享到:
相关推荐
Java 变量初始化详解 Java 变量初始化是 Java 语言的基础知识点之一,但也往往被学习者所忽略。 Java 变量初始化的时机是指在 Java 语言中变量的初始化过程,包括变量的声明、初始化和赋值的步骤。 Java 变量声明 ...
总的来说,易语言中的静态变量初始化是程序设计中的一个重要概念,尤其是在需要保存函数间状态或者实现某种计数功能时。理解并恰当使用静态变量,可以极大地提高代码的效率和可读性。在实际编程过程中,应根据需求...
### VC++全局变量初始化详解 #### 一、程序启动与全局变量初始化 在VC++环境中,当一个程序启动时,其加载过程与全局变量的初始化紧密相关。在本篇文章中,我们将详细介绍VC++中全局变量的初始化过程,尤其是动态...
理解ClassLoader的工作机制以及类变量初始化的顺序对于深入理解Java运行时环境至关重要。这篇博文将探讨这两个主题。 首先,让我们深入了解Java的ClassLoader。ClassLoader是一个抽象类,它是Java中的一个关键组件...
在这个“易语言静态变量初始化源码.zip”压缩包中,我们可以预见到它包含了一个或多个示例程序,这些程序主要展示了如何在易语言中使用静态变量进行初始化。 在编程中,变量是存储数据的容器,而静态变量有别于普通...
在早期的C++标准中,虽然也有类似的初始化方法,但其行为可能不尽相同,C++11及以后的标准则明确了这种初始化方式,并且规范了初始化的顺序。 成员变量的初始化顺序遵循以下规则: 1. **声明时初始化**:首先执行...
8. **父类非静态成员变量初始化**:接下来,`basecode` 被设置为 `"父类非静态变量初始化"`。 9. **父类非静态初始化块**:执行输出 `"我输出的是父类非静态块内容→" + this.basecode`。此时 `basecode` 已经被...
变量初始化时默认值为0.0f或0.0F。 - **double**:实数类型,用8个字节存储,符合64位IEEE 754双精度范围。变量初始化时默认值为0.0。 - **char**:字符类型,用2个字节存储,范围覆盖了16位Unicode字符集。变量初始...
需要注意的是,在 Java 中,数组变量必须在使用前进行初始化,否则将会抛出 NullPointerException。 二维数组的初始化 在 Java 中,二维数组可以通过多种方式进行初始化。 1. 声明数组变量:`int[][] a;`,这只...
long 属于 Java 中的整型,长度为 8 字节(64bit),取值范围为 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807,变量初始化默认值为 0 或 0L。包装类为 Long。 二、浮点型 浮点型在 Java 中分为两种:...
局部变量:没有初始化值,必须手动初始化 生命周期不同 成员变量:随着对象的创建而存在,随着对象的消失而消失 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失 特别注意 成员变量和局部变量的...
在JavaScript中,变量初始化是一个重要的概念,指的是在变量被使用之前为其赋予一个初始值。JavaScript 是一种弱类型语言,意味着变量在声明时不一定要指定数据类型,而且在使用时也不需要初始化。然而,不进行初始...
- 默认初始化:每个实例变量都会被赋予默认值(如int为0,对象引用为null)。 - 构造器链:如果父类有构造器,子类的构造器会先调用父类的构造器(如果没有显式指定,会默认调用无参构造器)。这个过程沿着继承链...
### 静态变量初始化的基本规则: 1. **默认初始化**:当类被加载时,静态变量首先会被赋予其数据类型的默认值。例如,`int`类型的静态变量会被初始化为`0`,`boolean`为`false`,引用类型为`null`。 2. **显式初始化...
// 静态成员变量初始化 public static TestA a = new TestA(); // 静态初始化块 static { System.out.println("静态初始化"); } // 实例成员变量初始化 public static TestB b = new TestB(); public ...
链表节点的初始化是指将链表节点的所有成员变量初始化为默认值,以便将来使用。 在链表节点初始化函数vListInitialiseItem中,首先将链表项的pvContainer成员变量初始化为空指针NULL,这是因为链表项还没有插入任何...
C语言中,未初始化的局部变量到底是多少? 答案往往是: 与编译器有关。 可能但不保证初始化为0。 未确定。 总之,全部都是些一本正经的形而上答案,这很令人讨厌。 但凡一些人给你滔滔不绝地扯编译器,C库,...
在提供的代码中,`PhotoInfo` 和 `OrderInfo` 都是用这种方式进行了初始化,将每个成员变量设置为默认值或特定的初始值。例如: ```c++ PhotoInfo() { csName = NULL_STRING; csStoragePath = NULL_STRING; // ....
在这个“易语言-易语言静态变量初始化”的示例中,我们将深入探讨易语言中的静态变量及其初始化。 静态变量在程序中扮演着重要的角色,它们具有持久性,即在函数或程序块执行期间被创建,但其生命周期远远超过函数...
如果一个域是静态的基本类型域,且没有对它进行初始化,那么它将会被初始化为该类型的默认值。 Java 中的初始化顺序是按照定义的顺序进行的,而静态变量的初始化顺序则是按照定义的顺序,并且只在第一次访问时初始...