java - 与此代码中的 Count 用法混淆。

标签 java variables count

我不知道这段代码的哪些部分是有效的。

这里是:

public class fia1 {
  public static void main(String [] args) {
   Band b0 = new Band();
   b0.name = "Beastie";
   b0.age = 25;
   Band b1 = new Band();
   b1.name = "Orchestra";
   b1.age = 100;
   System.out.println(b0.count);

   Band b2 = new Band();
   b2.name = "Polka";
   b2.age = 5;

   System.out.println("Names: " + b0.name + " " + b1.name + "
   " + b2.name);
   System.out.println(Band.count);
   b1 = b2;
   b1.age = 10;
   b0.age = b2.age + b0.age;

   System.out.println("Ages = " + b0.age + " " + b1.age + " "
   + b2.age);
    }
      }

  class Band {
   String name;
   int age;
   static int count = 1;
   Band() {
   count = count * 2;
   }
     }

那么这个打印是什么:

4
Names: Beastie, Orchestra, Polka
8
Ages: 35, 10, 10

我很困惑如何从第一次计数中得到 4。我也知道

 static int count = 1;

是我误解的地方。这是java计算变量的方式吗?按 1,那么 2 是 Beastie,3 是 Orchestra,4 是 Polka?我真的不知道这是如何运作的。感谢您的帮助!

最佳答案

您在 static int count = 1; 中使用static 变量,这意味着每次您创建新的 Band 时,该变量都会所有Bands都加倍(因为count = count * 2;)

请参阅下面的代码以及解释所发生情况的注释:

public static void main(String [] args)
{
    Band b0 = new Band(); //Count becomes 1*2 = 2.
    b0.name = "Beastie";
    b0.age = 25;

    Band b1 = new Band(); //Count becomes 2*2 = 4.
    b1.name = "Orchestra";
    b1.age = 100;
    System.out.println(b0.count); //Prints 4.

    Band b2 = new Band(); //Count becomes 4*2 = 8.
    b2.name = "Polka";
    b2.age = 5;

    System.out.println("Names: " + b0.name + " " + b1.name + " " + b2.name);
    System.out.println(Band.count); //Prints 8.
    b1 = b2;
    b1.age = 10;
    b0.age = b2.age + b0.age;

    System.out.println("Ages = " + b0.age + " " + b1.age + " " + b2.age);
}

关于java - 与此代码中的 Count 用法混淆。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44014676/

相关文章:

java - Android 黑客攻击预防

java - 奇怪的 HashSet 行为

javascript - 调用函数时变量不改变

variables - 如何将变量序列(列表)传递给 SAS 宏

mysql - rails COUNT SELECT DISTINCT

Python;计算向量的元素

java - 负数按位运算符

java - 获取多维数组的大小

c++ - 在 C++ 中使用循环创建顺序变量名称

sql - Postgres/ANSI SQL 系统如何将 'count' 聚合与 GROUP BY 字段相关联