私は国の名前とその分類を(コードの最後に示されているように)印刷したいと思います。ただし、if文は機能しません。私はそれをコンストラクタから抜き出してみましたが、それはうまくいかず、私の主なメソッドで試してみると、変数はクラスCountryで定義されているので、とにかく動作しません。だから私はどのようにif文を使って分類を行うことができるかを尋ねたがっています。Java:このif-else文(コンストラクタ内)を使用するにはどうすればよいですか?
public class Exercise {
public static void main(String[] args){
Country Sweden = new Country("Sweden", 498000000000l,10000000);
Sweden.representcountry();
}
public static class Country{
String name;
long GDP;
int population;
int GDPCapita;
String classification;
public Country(String name, long GDP, int population){
this.name = name;
this.GDP = GDP;
this.population = population;
GDPCapita = (int) (this.GDP/this.population);
}
// Getters and Setters
/*
if(GDPCapita >= 10000){
classification = "Developed country";
}
else {
classification = "Developing country";
}
*/
final String END_OF_LINE = System.lineSeparator();
public String representcountry(){
System.out.println(this.name + ":" + END_OF_LINE // + classification
+ "Population: " + + this.population + END_OF_LINE
+ "GDP: " + this.GDP + END_OF_LINE
+ GDPCapita + " per capita");
return "";
}
}
}
どのようにそれが "機能しない" のでしょうか? GDPCaptiaが計算された後、コンストラクタで 'if ... else'ステートメントを挿入するので、うまくいくはずです。 – AntonH
これはすでにhttps://stackoverflow.com/questions/13202672/if-else-statements-inside-a-java-constructor – user3170321