2012-03-14 89 views
0

我在android中声明变量时有点困惑,我知道两种方法。声明变量之间的区别

1. int EC, CC, PT, HC = 1; 
    2. int EC = 1, CC = 1, PT = 1, HC = 1; 

我想知道1 & 2.

都在相同的方式之间的区别?

+3

在第一个例子中,只有HC值为1,其他值为默认值,在这种情况下为0. – Alex 2012-03-14 12:52:02

+0

这是一个Java事物,而不是一个特定的机器人。 – dan 2012-03-14 12:53:19

+1

有趣的是,没有人提到这两种方法都是一个坏主意。每个变量应该在自己的行上声明,与其他变量无关,即'int EC = 0; int CC = 0;'等等 – Dave 2012-03-14 13:42:52

回答

2

这个问题并没有真正涉及Android,它只依赖于Java。
无论如何,
第一种方法创建变量EC, CC, PTHCHC得到值1. 在您创建的所有变量,并给他们的价值1

第二种方法只是做了Java和变量的搜索,如果你想找到有关问题的一些信息。这里有两个链接给你:
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/variables.html
http://www.roseindia.net/java/master-java/variables-in-java.shtml

在一个侧面说明,您应该遵循Java命名约定,并保持你的变量小写,大写或任何后续单词的第一个字母的变量名。

+0

感谢您的快速响应和简要说明。 – Pari 2012-03-14 13:06:33

0

假设实例变量,第一种方式,EC,CC,PT为零。第二种方式都是一样的。

如果没有分配,则将实例变量分配给默认值。

如果您将第一个定义为局部变量(在任何方法中),您将收到编译错误。

0

在第一种情况下,除EC以外,全部都未初始化。

在第二种情况下,所有都被初始化。

+0

“未初始化”的int(和其他基元)被设置为0(或false,0f,无论适用)。 – zapl 2012-03-14 12:55:27

+0

...仅当它们是实例变量(类内声明的变量而不是在方法中) – zapl 2012-03-14 13:04:41

1

不,这是不一样的。

在第一种情况下,只有HC将分配值1。其他变量将保留为未分配状态。

如果它们是实例或静态变量,则表示它们将获得默认值0.如果它们是局部变量,则在使用它们之前需要先指定它们。

1
  1. 仅HC将被初始化
  2. 所有变量被初始化(具有值1)
0

在第一种情况中,第一3个变量是未初始化的,这意味着当对象被创建编译器将在整数类型的情况下用默认值hich为零初始化那些未初始化的变量,最后一个变量将用ONE初始化。

在第二种情况下,每个变量将被初始化为1。你也可以做如下

首先声明的所有变量

int EC, CC, PT, HC; 

然后分配值

EC =CC = PT = HC = 1; 
+0

假设这些是变量,而不是域,在第一种情况下EC,CC,PT是未初始化的,这比与被分配不同0。 – 2012-03-14 19:09:18

0

如果声明int EC,CC,PT,HC=1;

The values for EC,CC and PT are Zero(0) and HC value is 1, 

如果decalre int EC=1,CC=1,PT=1,HC=1意味着所有的EC ,CC,PT和HC值是1。

0

第一个例子如下: int EC; int CC; int PT; int HC = 1; //只有hc取值为1
第二个例子如下: int EC = 1; int CC = 1; int PT = 1; int HC = 1; //所有变量的值都是1

相关问题