Java 如何在股票之间建立关联?
我是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)
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;
}
}