Java-递增计数器,这是一个类变量

时间:2016-05-06 22:32:28

标签: java constructor

我有一个问题,其中一部分说:

类Vehicle有4个属性,分别是noOfTyres,附件,品牌和计数器,分别是整数,布尔,字符串和整数。 Counter是一个类变量。该类的构造函数初始化所有3个变量并将计数器递增1。

我想到了这部分的两种方法,我不确定哪一种方法是正确的,或者两种方法都是正确的。

第一个是:

public class Vehicle{
  private int noOfTyres;
  private Boolean accesories;
  private String brand;
  private int static counter=0;
  private int counterNum;

public Vehicle(int noOfTyres, int accessories, int brand){
 counter++;
 this.noOfTyres= noOfTyres;
 this.accessories= accessories;
 this.brand= brand;
 counterNum= counter;}

}

第二个是:

  public class Vehicle{
   private int noOfTyres;
   private Boolean accesories;
   private String brand;
   private int counter=0;


public Vehicle(int noOfTyres, int accessories, int brand){
 counter++;
 this.counter= counter;
 this.noOfTyres= noOfTyres;
 this.accessories= accessories;
 this.brand= brand;
 }

}

根据问题提供的信息类型/数量,哪种方法(如果有的话)是合适的?

1 个答案:

答案 0 :(得分:4)

要使某个类变量而不是实例变量,我们需要将其设为static

有关static个变量的更多信息,以及它们与常规变量的不同之处:https://en.wikipedia.org/wiki/Static_variable

TLDR:你的第一个解决方案是正确的,尽管我认为应该阅读 private static int counter = 0;