用python:设计一个名为 Stock 的类来表示一个公司的股票,它包括: 一个名为 symbol 的私有字符串数据域表示股票的符号。 •一个名为 name 的私有字符串数据域表示股票的名字。 •一个名为 previousClosingPrice 的私有浮点数据域存储前一天的股票价。 一个名为 currentPrice 的私有浮点数据域存储当前的股票价。 •一个构造方法创建一支具有特定的符号、名字、之前价和当前价的股票。 •一个返回股票名字的get 方法。 •一个返回股票符号的get 方法。 •获取/设置股票之前价的get 和 set 方法。 •获取/设置股票当前价的get 和 set 方法。 ・一个名为 getChangePercent() 的方法返回/从previousClosingPrice 到 currentPrice 所改変的百分比。 绘制这个类的 UML 类图,然后实现这个类。编写一个测试程序,创建一个Stock对象,它的符号是 INTC,它的名字是 Intel Corporation,前一天的结束价是 20.5,新的当前价是 20.35,并且显示价格改变的百分比。
时间: 2023-12-14 20:36:51 浏览: 147
下面是实现代码:
```python
class Stock:
def __init__(self, symbol, name, previousClosingPrice, currentPrice):
self.__symbol = symbol
self.__name = name
self.__previousClosingPrice = previousClosingPrice
self.__currentPrice = currentPrice
def getName(self):
return self.__name
def getSymbol(self):
return self.__symbol
def getPreviousClosingPrice(self):
return self.__previousClosingPrice
def setPreviousClosingPrice(self, previousClosingPrice):
self.__previousClosingPrice = previousClosingPrice
def getCurrentPrice(self):
return self.__currentPrice
def setCurrentPrice(self, currentPrice):
self.__currentPrice = currentPrice
def getChangePercent(self):
return (self.__currentPrice - self.__previousClosingPrice) / self.__previousClosingPrice * 100
# 测试程序
stock = Stock("INTC", "Intel Corporation", 20.5, 20.35)
print("股票名字:", stock.getName())
print("股票符号:", stock.getSymbol())
print("股票之前价:", stock.getPreviousClosingPrice())
print("股票当前价:", stock.getCurrentPrice())
print("价格改变百分比:", stock.getChangePercent(), "%")
```
UML 类图如下:
```
+--------------------------+
| Stock |
+--------------------------+
| - __symbol: str |
| - __name: str |
| - __previousClosingPrice: float |
| - __currentPrice: float |
+--------------------------+
| + __init__(symbol: str, name: str, previousClosingPrice: float, currentPrice: float) |
| + getName() -> str |
| + getSymbol() -> str |
| + getPreviousClosingPrice() -> float |
| + setPreviousClosingPrice(previousClosingPrice: float) -> None |
| + getCurrentPrice() -> float |
| + setCurrentPrice(currentPrice: float) -> None |
| + getChangePercent() -> float |
+--------------------------+
```
阅读全文