尝试从另一个对象(JAVA)引用变量

时间:2020-03-23 14:07:33

标签: java object printing reference

我刚刚开始学习Java,并试图创建一个“ Counter”类来补充另一个“ CounterTesting”类作为对象。这就是我设置Counter类的方式:

public class Counter
{
  public int count;

  public Counter()
  {
    count = 0
  }

  void click()
  {
    count += 1;
  }
}

这是我的主要课程:

public class CounterTesting
{
    public static void main(String[] args)
    {
        Counter c1 = new Counter();
        Counter c2 = new Counter();

        System.out.println("Counter 1: " + c1 + "    Counter 2: " + c2);

        c1.click();
        c1.click();
        c1.click();
        c1.click();
        c1.click();

        c2.click();
        c2.click();
        c2.click();

        System.out.println("Counter 1: " + c1 + "    Counter 2: " + c2);
    }
}

但是当我运行它时,无论何时打印c1和c2都会打印“ Counter @ 686a1b3f”。我认为发生的事情是调用类本身而不是变量,但是我不确定如何修复它。 预先感谢!

1 个答案:

答案 0 :(得分:1)

是的,所以它正在打印出类的名称以及相对于该类的hashCode()。这是因为java中的每个Object都有一个toString函数,该函数可以执行我刚刚描述的操作。如果覆盖toString函数以提供相对信息(如计数器整数),则可以打印它。一种替代方法是直接在Counter类中引用counter变量。

@Override
public String toString() {
    return String.format("counter=%s, counter);
}