我工作的其中規定的程序:複製私有數據成員
創建一個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++ –