package javaapplication54;
public class JavaApplication54 {
static int monkey = 8;
static int theArray[] = new int[1];
public static void main(String[] args) {
// i attempted two ways to try to set monkey to = theArray[0];
monkey = theArray[0];
theArray[0] = monkey;
//i tried to get the result 8;
System.out.println(theArray[0]);
}
}
我试图通过打印出阵列[0]来获得结果8,但结果为零。
run:
0
BUILD SUCCESSFUL (total time: 0 seconds)
答案 0 :(得分:2)
您在第一次初始化theArray[0]
时monkey = theArray[0]
theArray[0]
行中0
分配了theArray
:
static int theArray[] = new int[1];
答案 1 :(得分:2)
您正在使用int
原语,因此默认为0。
让我一块一块地分解你的代码,这样你才能理解这一点。
您在此声明monkey
为8
static int monkey = 8;
在这里你创建一个新数组
static int theArray[] = new int[1];
此时,数组仅包含0
,因为它是int
变量的默认值。因此,theArray[0]
等于0
。
在这里你得到0
并将其分配给猴子,其前一个值为8
monkey = theArray[0];
然后你得到了新分配的猴子,现在等于0
,并将其分配给theArray[0]
。
theArray[0] = monkey;
所以theArray[0]
相当于0
现在相当于......是的,0
。
最后但并非最不重要的是,您使用0
System.out.println(theArray[0]);
这就是为什么你得到0
而不是8
。
答案 2 :(得分:1)
int
默认值为0
,因此按预期工作。
如果您希望它指向8
,请在将monkey
指定给其他地方之前先将其保存在临时变量中。
答案 3 :(得分:0)
main方法中的第1行将monkey的值替换为存储在Array [0]中的值,在这种情况下,它是默认的int值(0)。 第2行将theArray [0]的值设置为monkey,因此monkey(8)的初始值完全丢失。 如果你想在theArray [0]中存储猴子变量,也许这就是你可以尝试的,
public class JavaApplication54 {
static int monkey = 8;
static int theArray[] = new int[1];
public static void main(String args[])
{
theArray[0]=monkey;
System.out.println(theArray[0]);
}
输出: - 8
同时考虑数据和变量都是静态的这一事实,这是必需的,因为您在静态方法中使用它们,但如果您从代码中的任何位置更改其值,它将反映所有地方的更改。
http://www.caveofprogramming.com/java/java-for-beginners-static-variables-what-are-they/