我目前正在尝试理解组合能够将它们实现为我正在处理的一段代码。我没有看到组合物atm的重要性/用途,但就我的目的而言,似乎我必须使用它。
我目前没有任何指导自己的例子。我已经尝试过在谷歌和YouTube上观看了。
我想用作文来完成的事情可以在下面看到:
该系统旨在允许预订飞机的多个座位。我们想用两个类来实现这个系统,一个Flight类和一个Aircraft类。每个Flight对象都应包含一个Aircraft对象的实例。这些类的角色和属性是:
飞机:此类将存储两个属性,即飞机名称作为字符串和数字最大容量。
航班:此课程将存储预订座位所需的信息。它将存储航班号(作为字符串),保留座位数,并且将包含将使用的飞机对象确定可以预订的最多座位数。此类必须编写bookSeats(noSeats)成员函数,该函数将用于预订席位。在bookSeats(noSeats)中,如果飞机上没有足够的座位允许预订,则需要抛出异常。
在您定义了两个班级后,实例化一个或多个航班并尝试预订座位以使预订成功,并且预订会抛出异常。
<html>
<head>
<title>Test Template</title>
<script type="text/javascript">
function Flight(flightNo, maxSeats, reservedSeats ){
this.no = "AC781";
//Aaircarft object is needeed to get max number of seats
//this.maxSeats = 522;
this.reserved = 90;
}
//
function Aircraft (planeName,maxSeats){
this.planeName = "test"
this.maxSeats = 522;
}
Flight.prototype.bookSeats = function(noSeats){
if( noSeats + this.reserved <= this.maxSeats ){
this.reserved+= noSeats
} else {
throw "Not enough seats"; // THROW EXCEPTION
}
}
//Test the Flight implementation
var toHalifax = new Flight();
alert("Before update " + "No:" + toHalifax.no +
" Max seats:" + toHalifax.maxSeats +
" Reserved:" + toHalifax.reserved );
try{
toHalifax.bookSeats(46);
alert("After update " + "No:" + toHalifax.no +
" Max seats:" + toHalifax.maxSeats +
" Reserved:" + toHalifax.reserved );
} catch ( err ){
alert( err );
}
</script>
</head>
<body>
</body>
</html>
答案 0 :(得分:1)
Aircraft
对象应该是Flight
对象的“类似构造函数的函数”的参数。
<强>声明强>
我假设您使用航班/飞机作为编码练习的示例,并且您没有建立真实世界的航空预订系统。如果您正在建立一个真实的航空预订系统,我会给出不同的答案。