[英]Issue with Varargs with multiple classes in Java
所以在创建具有多个类的变量参数时遇到问题。 正如您在下面的代码中看到的那样,我只是试图以随机顺序进入多个城市和地区,并尝试打印出整个州的人口。 除了问题是,我不知道如何遍历CAndD数组以将所有总体加在一起。
码:
public class Main {
public static void main(String args[]) {
State S = new State("Florida", new District("Miami-Dade", 2752000),
new City("Miami", 463347),
new City("Tampa", 385430),
new District("Broward", 1936000));
System.out.println("The Population is: " + S.getPopulation());
}
}
class CitiesAndDistricts {
}
class City extends CitiesAndDistricts{
String name;
int population;
public City(String name, int population) {
this.name = name;
this.population = population;
}
}
class District extends CitiesAndDistricts{
String name;
int population;
public District(String name, int population) {
this.name = name;
this.population = population;
}
}
class State {
String name;
int population;
CitiesAndDistricts[] CAndD;
public State(String name, CitiesAndDistricts ... entities) {
this.name = name;
CAndD = entities;
for(int i = 0; i < CAndD.length; i++) {
this.population += CAndD[i].population;
}
}
public int getPopulation() {
return population;
}
}
如果有人可以帮助我解决这个问题,那就太好了!
请看下面的代码,我已经将人口变量从城市和地区移到了父类:
public class Main {
public static void main(String args[]) {
State S = new State("Florida", new District("Miami-Dade", 2752000),
new City("Miami", 463347),
new City("Tampa", 385430),
new District("Broward", 1936000));
System.out.println("The Population is: " + S.getPopulation());
}
}
class CitiesAndDistricts {
int population;
}
class City extends CitiesAndDistricts{
String name;
public City(String name, int population) {
this.name = name;
this.population = population;
}
}
class District extends CitiesAndDistricts{
String name;
public District(String name, int population) {
this.name = name;
this.population = population;
}
}
class State {
String name;
int population;
CitiesAndDistricts[] CAndD;
public State(String name, CitiesAndDistricts ... entities) {
this.name = name;
CAndD = entities;
for(int i = 0; i < CAndD.length; i++) {
this.population += CAndD[i].population;
}
}
public int getPopulation() {
return population;
}
}
设计一个空的父类似乎不好。 在您的代码中,类City和District相同。 我假设您想知道地点的类型(城市或地区)。 更好的解决方案是将子类的所有属性移到父类。 CitiesAndDistricts类为:
class CitiesAndDistricts {
String name;
int population;
public CitiesAndDistricts(String name, int population} {
this.name = name;
this.population = population;
}
}
从该父类,您可以扩展到城市和地区类,如下所示:
class City extends CitiesAndDistricts{
public City(String name, int population) {
super(name, population);
}
}
class District extends CitiesAndDistricts{
public District(String name, int population) {
super(name, population);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.