关于使用初始化块初始化变量的几种情况的运行结果分析
来源:互联网 发布:淘宝运营怎么收费 编辑:程序博客网 时间:2024/06/05 00:11
1、用非静态初始化块初始化非静态变量
class TryInitialization
{
int[] values = new int[10]; //Static array member
//Initialization block
//static
{
System.out.println("Running initialization block.");
for (int i = 0; i < values.length; i++)
values[i] = (int)(100.0 * Math.random());
}
//List values in the array for an object
void listValues()
{
System.out.println(); //Start a new line
for (int i = 0; i < values.length; i++)
System.out.print(" " + values[i]); //Display values
System.out.println(); //Start a new line
}
public static void main(String[] args)
{
TryInitialization example1 = new TryInitialization();
System.out.println("/nFirst object:");
example1.listValues();
TryInitialization example2 = new TryInitialization();
System.out.println("/nSecond object:");
example2.listValues();
example1.listValues();
}
}
运行结果为:
Running initialization block.
First object:
24 59 34 10 6 46 92 50 54 0
Running initialization block.
Second object:
82 14 39 11 57 69 1 96 0 15
24 59 34 10 6 46 92 50 54 0
2、用静态初始化块初始化静态变量
即把
int[] values = new int[10]; //Static array member
//Initialization block
{
System.out.println("Running initialization block.");
for (int i = 0; i < values.length; i++)
values[i] = (int)(100.0 * Math.random());
}
改成
static int[] values = new int[10]; //Static array member
//Initialization block
static
{
System.out.println("Running initialization block.");
for (int i = 0; i < values.length; i++)
values[i] = (int)(100.0 * Math.random());
}
运行结果为:
Running initialization block.
First object:
41 29 51 25 84 1 70 18 47 23
Second object:
41 29 51 25 84 1 70 18 47 23
41 29 51 25 84 1 70 18 47 23
3、用非静态初始化块初始化静态变量
即改成
static int[] values = new int[10]; //Static array member
//Initialization block
{
System.out.println("Running initialization block.");
for (int i = 0; i < values.length; i++)
values[i] = (int)(100.0 * Math.random());
}
运行结果为
First object:
94 51 83 56 80 42 84 38 85 48
Running initialization block.
Second object:
51 30 58 13 11 76 98 23 42 34
51 30 58 13 11 76 98 23 42 34
4、用静态初始化块初始化非静态变量
即改成
int[] values = new int[10]; //Static array member
//Initialization block
static
{
System.out.println("Running initialization block.");
for (int i = 0; i < values.length; i++)
values[i] = (int)(100.0 * Math.random());
}
编译错误
TryInitialization.java:9: non-static variable values cannot be referenced from a
static context
for (int i = 0; i < values.length; i++)
^
TryInitialization.java:10: non-static variable values cannot be referenced from
a static context
values[i] = (int)(100.0 * Math.random());
^
2 errors
- 关于使用初始化块初始化变量的几种情况的运行结果分析
- C++:只用初始化列表初始化变量的几种情况
- 构造函数初始化列表中成员变量必须初始化的几种情况
- 构造函数中,成员变量一定要通过初始化列表来初始化的几种情况
- 必须使用初始化列表的几种情况
- 拷贝初始化的几种情况
- 关于Java静态成员变量和静态初始化块等的初始化顺序的详细介绍
- Java类的初始化顺序 (静态变量、静态初始化块、变量、初始化块、构造方法)
- Java类的初始化顺序 (静态变量、静态初始化块、变量、初始化块、构造器
- Java类的初始化顺序 (静态变量、静态初始化块、变量、初始化块、构造器)
- iOS 几种初始化的分析比较
- 必须要用初始化列表的几种情况
- java基础,静态变量,静态初始化块,初始化快,成员变量的初始化顺序
- 【c++】必须在类的初始化列表中初始化的的几种情况
- 类的几种特殊的成员变量的初始化
- 关于Java的静态初始化块
- 关于static代码块的初始化问题:
- 关于Java的静态初始化块
- 读取网页源代码
- 深入解析ATL(第二版ATL8.0)(2.1-2.2节)
- 转移阵地,这里太不稳定了。
- 再来一次URL重写
- LINUX入门常用命令之改变文件或目录的访问权限
- 关于使用初始化块初始化变量的几种情况的运行结果分析
- LINUX入门常用命令之Linux与用户有关的命令
- 还没想到写些什么东西。。。。
- LINUX入门常用命令之系统管理
- LINUX入门常用命令之磁盘管理
- LINUX入门常用命令之其它命令
- 读取数据库表结构代码(sql 2000,2005)
- NTP 及其在电信时间同步网络中的应用
- PHOTOSHOP 500典例特制 EXE电子书[转载]