Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在股票之间建立关联?_Java_Oop - Fatal编程技术网

Java 如何在股票之间建立关联?

Java 如何在股票之间建立关联?,java,oop,Java,Oop,我是Java新手,我必须做这个图表,但我有很多问题,在公司我有以下几点: public class Company { private String name; public Company (String name) { this.name = name; } public String getName() { return name; } public void setName(String name)

我是Java新手,我必须做这个图表,但我有很多问题,在公司我有以下几点:

  public class Company {
    private String name;

    public Company (String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
股份:

 public class Share  {
    private double value;
    private Company company;

    public Share(double value, Company company) {
        this.value = value;
        this.company = company;
    }

    public double getValue() {
        return value;
    }

    public void setValue(double value) {
        this.value = value;
    }

    public Company getCompany() {
        return company;
    }

    public void setCompany(Company company) {
        this.company = company;
    }
}
在Portofolio,我有:

    public class Portofolio {
   private int noShares;
   Share[] shares = new Share[5];
   private int numberOfShares = 0;

    public Portofolio(int noShares) {
        this.noShares = noShares;
    }

    public void addShare(Share newShare) {
    if (shares == null) {
        shares = new Share[0];
    }
    else {
        Share[] newShares = new Share[numberOfShares+1];
        System.arraycopy(shares, 0, newShares, 0, numberOfShares);
        shares = newShares;
    }

    shares[numberOfShares++] = newShare;
    newShare.setValue(this);
    }
public double computeSum() {
        double sum = 0;
        for(var i = 0; i < shares.length; i++) {
            sum += i;
        }
        return sum;
    }

    public int getNoShares() {
        return noShares;
    }

    public Share[] getShares() {
        return shares;
    }
}
公共类Portofolio{
私家菜园;
股份[]股份=新股[5];
私有int numberOfShares=0;
公共Portofolio(int noShares){
this.noShares=noShares;
}
公共无效添加共享(共享新闻共享){
if(shares==null){
股份=新股份[0];
}
否则{
Share[]newShares=新股份[numberOfShares+1];
System.arraycopy(shares,0,newShares,0,numberOfShares);
股票=新闻股;
}
股份[numberOfShares++]=新闻共享;
newShare.setValue(this);
}
公共双计算机(){
双和=0;
对于(var i=0;i

所以在图像中我需要计算我添加的值,问题是当我尝试使用这个关键字时,需要的类型是double,但提供的是Portofolio。因此,我的问题是,为了能够像图中那样正确地对共享进行求和,我需要做什么?

addShare
中删除以下行,它没有意义:

newShare.setValue(this);
您还应该删除
numberOfShares
的冗余定义,并始终使用
noShares
(事实上,它们都不是必需的,因为Java数组知道它们自己的长度——但您的练习需要它,所以请坚持使用它)

接下来,删除构造函数,它也没有意义

此外,您的
computeSum
方法对指数求和,而不是对共享值求和。换成

public double computeSum() {
    double sum = 0;
    for(var i = 0; i < noShares; i++) {
        sum += shares[i].getValue();
    }
    return sum;
}

“要使用此关键字,它需要双”。。。这并不是一个清晰的问题描述。请阅读并相应地增强您的代码。例如,提供编译器错误消息。是的,我知道我可以编辑,但我的问题不同,所以我建议最好再发一篇帖子。上帝,非常感谢,我忘了获取每个值,这就是为什么我没有工作的原因。
public class Portofolio {
    private int noShares;
    private Share[] shares;

    public void addShare(Share newShare) {
        if (shares == null) {
            shares = new Share[0];
        } else {
            Share[] newShares = new Share[noShares + 1];
            System.arraycopy(shares, 0, newShares, 0, noShares);
            shares = newShares;
        }

        shares[noShares++] = newShare;
    }

    public double computeSum() {
        double sum = 0;
        for(int i = 0; i < shares.length; i++) {
            sum += shares[i].getValue();
        }
        return sum;
    }
}