我工作的其中规定的程序:复制私有数据成员
创建一个Java类股票代表大约是买进和卖出股票的信息....每当股票价格发生变化时,每股价格的变化也会更新。忽略二传手每股价格的变化。每股价格的变化只会在每股价格变化时确定。不要在构造函数中包含价格变化参数。初始化更改为零。
我想通过计算股价变化的唯一方法是创建第四个变量(originalPrice),将其等同于sharePrice并将其减去。但是,这不起作用,我不知道如何为变量创建“深层”副本。有没有办法让originalPrice成为sharePrice的副本,然后再与sharePrice分开更新?感谢您的帮助!
股票类:
public class Stock {
private String name;
private double sharePrice;
private double originalPrice;
private double changeSharePrice = 0;
/**
* @param name
* @param sharePrice
* @param changeSharePrice
*/
public Stock(String stockName, double sharePrice) {
setName(stockName);
setSharePrice(sharePrice);
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String stockName) {
this.name = stockName;
}
/**
* @return the sharePrice
*/
public double getSharePrice() {
return sharePrice;
}
/**
* @param sharePrice the sharePrice to set
*/
public void setSharePrice(double sharePrice) {
this.sharePrice = sharePrice;
originalPrice = sharePrice;
changeSharePrice = sharePrice - originalPrice;
}
/**
* @return the changeSharePrice
*/
public double getChangeSharePrice() {
return changeSharePrice;
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "Stock Name: " + name + "/n Price Per Share: " + sharePrice + "/n Change in Price Per Share: "
+ changeSharePrice;
}
/*
* Copy Constructor
*/
public Stock(Stock other) {
name = other.name;
sharePrice = other.sharePrice;
changeSharePrice = other.changeSharePrice;
}
/*
* Deep copy method
*/
public Stock copy() {
return new Stock(name, sharePrice);
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#equals(java.lang.Object) Equals Method
*/
public boolean equals(Object obj) {
Stock other = (Stock) obj;
if (name == other.name)
return true;
else
return false;
}
}
这里是我的主:
public class tester {
public static void main(String[] args) {
// An object is created for Nomad Foods Limited
Stock one = new Stock("NOMD", 10.46);
//An object is created for Treehouse Foods
Stock two = new Stock("THS", 69.18);
one.setSharePrice(4.00);
System.out.print(one.getChangeSharePrice());
}
}
为什么不工作?你得到什么输出? –
这是什么*复制构造函数*业务?这不是C++ –