我有一个问题,其中一部分说:
类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;
}
}
根据问题提供的信息类型/数量,哪种方法(如果有的话)是合适的?
答案 0 :(得分:4)
要使某个类变量而不是实例变量,我们需要将其设为static
。
有关static
个变量的更多信息,以及它们与常规变量的不同之处:https://en.wikipedia.org/wiki/Static_variable
TLDR:你的第一个解决方案是正确的,尽管我认为应该阅读
private static int counter = 0;