我想用家庭保险计算保险金额。最初的要求是:2个保险产品,每平方米的价格不同 1.紧凑型:每平方米650欧元 2.最佳:每平方米700欧元 该程序的2个输入是:“紧凑”或“最佳” 和平方米的生活空间。 输出应该是保险金额; 必须记下,该程序可能会被其他计算复杂的产品扩展。
我正在以这种方式进行,但由于我是java的新手,我陷入了如何处理构造函数的困境。在我的代码中,我想修复compact和Optimal,但我希望通过用户输入获得Living space的值,例如scanner类。在这种情况下我该怎么做呢。
My Insurance class
public class Insurance {
private Double Kompakt;
private Double Optimal;
public Insurance(Double kompakt, Double optimal) {
this.Kompakt = kompakt;
this.Optimal = optimal;
}
public Double getKompakt() {
return Kompakt;
}
public void setKompakt(Double kompakt) {
this.Kompakt = kompakt;
}
public Double getOptimal() {
return Optimal;
}
public void setOptimal(Double optimal) {
this.Optimal = optimal;
}
}
我的总和等级是
public class Sum extends Insurance{
private int livingSpace;
public Summe(Double kompakt, Double optimal, int Wohnfläche) {
super(1.0, 1.0);
this.livingSpace=livingSpace;
this.setCompakt(650.00); // I want to fix value of Compact
this.setOptimal(700.00); // I want to fix Value of Optimal
}
public double CompaktSum(){
double sum= getCompakt()*livingSpace;
return sum;
}
public double OptimalSum(){
double sum =getOptimal()*livingSpace;
return sum;
}
}
现在在我的主类中我想手动设置livingSpace的值但是我不能在没有设置方法的情况下调用构造函数
public static void main(String[] args) {
Scanner sc1 =new Scanner(System.in);
Scanner sc2 =new Scanner(System.in);
System.out.println("1\tCompact: 650 € per m²\n2\tOptimal: 700 € per
m²");
System.out.println("Please choose your 1 for Compact and 2 for product");
int swichValue=sc1.nextInt();
Summe hs=new Summe(1.0,1.0,5); // I am having problem here, I just want
//to call empty contructor so that I can set livingSpace manually
switch(swichValue){
case 1:{
double res=hs.KompaktSumme();
System.out.println("Versicherungssumme ist : "+res);
break;
}
case 2:{
double res=hs.OptimalSumme();
System.out.println("Versicherungssumme ist : "+res);
break;
}
case 3:{
System.out.println("Error");
}
}
}
答案 0 :(得分:0)
这是您重载构造函数的方法。但实际上你的代码不会编译,因为你的类的名称是Sum
,你的构造函数的名称是Summe
。构造函数应与类具有相同的名称。
public Sum() {
super(650.00, 700.00);
}
答案 1 :(得分:0)
public class Insurance {
private Double Kompakt = 700.0; // fixed value
private Double Optimal = 600.0; // fixed value
public Insurance() {} // empty constructor for the superclass
/* you can change the values and get them by using the same getters and setters you already created*/
现在在子类
中public class Summe extends Insurance{
private int livingSpace;
public Summe(int Wohnfläche) { // you can use this in future if you wnat
// no need to call the superclass constructor
livingSpace = Wohnfläche;
}
// another constructor that overloads the first (i.e empty one)
public Summe() {
// no need to call the superclass constrictor
}
// create a setter and a getter for the the livingSpace
public void setLivingSpace (int livingSpace){
this.livingSpace = livingSpace;
}
现在你在这里
public static void main(String[] args) {
Scanner sc1 =new Scanner(System.in);
Scanner sc2 =new Scanner(System.in);
System.out.println("1\tCompact: 650 € per m²\n2\tOptimal: 700 € per
m²");
System.out.println("Please choose your 1 for Compact and 2 for product");
int swichValue=sc1.nextInt();
Summe hs=new Summe();
// set the values here manually as you described
hs.setLivingSpace (0.5); // or whatever value, you may need to take it from user..etc
switch(swichValue){
case 1:
double res=hs.KompaktSumme();
System.out.println("Versicherungssumme ist : "+res);
break;
case 2:
double res=hs.OptimalSumme();
System.out.println("Versicherungssumme ist : "+res);
break;
case 3:
System.out.println("Error");
}
}