gpt4 book ai didi

java - objectarray 中对象字段的总和,全部在构造函数内?

转载 作者:行者123 更新时间:2023-11-30 01:39:59 30 4
gpt4 key购买 nike

我有两个类(class),一个用于文章,另一个用于购物车。购物车由一个对象数组组成,其中包含 article 对象。

我需要在构造函数中使用 foreach 循环来汇总商品的价格。当我在构造函数中编写该方法(这可能是错误的)时,其类型不被接受为 double 。我如何总结对象数组中对象的字段以及如何在构造函数中执行此操作(<- 这看起来像是一个糟糕的设计决策,但它是可能的类工作的一部分)。

这是我的类(class):

package org.teubler.sucks.aufgaben;
public class Artikel {
public enum Warengruppe{
A, B, C, S
}
String name;
double verkaufspreis;
Warengruppe Art;

Artikel(String name, double preis){
this.name = name;
this.verkaufspreis = preis;
this.Art = Warengruppe.S;
}
public double getVerkaufspreis() {
return verkaufspreis;
}
public void setWarengruppe(Warengruppe Art) {
switch(Art){
case A:Art = Warengruppe.A;
case B:Art = Warengruppe.B;
case C:Art = Warengruppe.C;
default: Art = Warengruppe.S;
}
}
}

二等

package org.teubler.sucks.aufgaben;
import java.util.Random;
public class Warenkorb {
String kunde;
Artikel artikelliste[];
int sessionid;

Random s = new Random();

Warenkorb(String kunde, Artikel[] artikel){
this.kunde = kunde;
this.artikelliste = artikel;
this.sessionid = s.nextInt();
public double gesamtpreis(){
double summe = 0;
for(Artikel preis : artikel){
summe += artikel.getVerkaufspreis();
}
return summe;
}
}

}

最佳答案

您正在尝试在构造函数中创建一个额外的方法。这不是一个好主意。您还尝试通过对象对数组进行索引,这是行不通的。最后,您尝试在 Object 上调用 getVerkaufspreis(),而不是强类型的 Artikel。试试这个:

Warenkorb(String kunde, Artikel[] artikel){
this.kunde = kunde;
this.artikelliste = artikel;
this.sessionid = s.nextInt();
double summe = 0;
for (Artikel preis : artikel) {
summe += preis.getVerkaufspreis();
}
}

现在,在循环结束时,您将得到总和 - 但您想用它做什么?我怀疑您想为其创建一个字段...

如果您绝对必须使用Object[]而不是Artikel[],那么您应该在每次迭代时进行强制转换:

Warenkorb(String kunde, Object[] artikel){
this.kunde = kunde;
this.artikelliste = artikel;
this.sessionid = s.nextInt();
double summe = 0;
for (Object preis : artikel) {
summe += ((Artikel)preis).getVerkaufspreis();
}
}

关于java - objectarray 中对象字段的总和,全部在构造函数内?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/935297/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com