beerl beverage
beer2 beverage
beverage beer2 beerl
编译失败
第1题:
classBeverage{Beverage(){System.out.print("beverage");}}classBeerextendsBeverage{publicstaticvoidmain(String[]args){Beerb=newBeer(14);}publicintBeer(intx){this();System.out.print("beer1");}publicBeer(){System.out.print("beer2");}}结果是什么?()
A.beer1beverage
B.beer2beverage
C.beveragebeer1
D.编译失败
第2题:
禁止游客随身携带( )
A.BIG SCISSORS
B.YOGURT
C.TIN
D.AERATED BEVERAGE
第3题:
(A) food
(B) beverage
(C) drinking
(D) drinks
正确答案:B
解答参考:Bfood n. “食物”,beverage n. “饮料”,drinking n.“喝,喝酒”,drink vt.“喝”。【译文】你更喜欢哪种饮料,咖啡还是橙汁?
第4题:
Water,Coffee,Wine和OrangeJuice都属于Beverage
第5题:
试题六(共15分)
阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
某咖啡店当卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格如下表所示。
【Java代码】
import java.util.*;
(1) class Beverage { //饮料
String description = "Unknown Beverage";
public (2) (){return description;}
public (3) ;
}
abstract class CondimentDecorator extends Beverage { //配料
(4) ;
}
class Espresso extends Beverage { //蒸馏咖啡
private final int ESPRESSO_PRICE = 25;
public Espresso() { description="Espresso"; }
public int cost() { return ESPRESSO_PRICE; }
}
class DarkRoast extends Beverage { //深度烘焙咖啡
private finalint DARKROAST_PRICE = 20;
public DarkRoast() { description = "DarkRoast"; }
public int cost(){ rcturn DARKROAST PRICE; }
}
class Mocha extends CondimentDecorator { //摩卡
private final int MOCHA_PRICE = 10;
public Mocha(Beverage beverage) {
this.beverage = beverage;
}
public String getDescription() {
return beverage.getDescription0 + ", Mocha";
}
public int cost() {
return MOCHA_PRICE + beverage.cost();
}
}
class Whip extends CondimentDecorator { //奶泡
private finalint WHIP_PRICE = 8;
public Whip(Beverage beverage) { this.beverage = beverage; }
public String getDescription() {
return beverage.getDescription()+", Whip";
}
public int cost() { return WHIP_PRICE + beverage.cost(); }
}
public class Coffee {
public static void main(String args[]) {
Beverage beverage = new DarkRoast();
beverage=new Mocha( 5 );
beverage=new Whip ( 6 );
System.out.println(beverage.getDescription() +"¥" +beverage.cost());
}
}
编译运行上述程序,其输出结果为:
DarkRoast, Mocha, Whip ¥38
第6题:
现有classBeverage{Beverage(){System.out.print("beverage");}}classBeerextendsBeverage{publicstaticvoidmain{string[]args){Beerb=newBeer(14);}publicintBeer(intx){this();System.out.print("beerl");}publicBeer(){System.out.print("beer2");}}结果是什么?()
A.beerlbeverage
B.beer2beverage
C.beveragebeer2beerl
D.编译失败
第7题:
试题五(共15分)
阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
某咖啡店当卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格如下表所示。
【C++代码】
include <iostream>
include <string>
using namespace std;
const int ESPRESSO_PRICE = 25;
const int DRAKROAST_PRICE = 20;
const int MOCHA_PRICE = 10;
const int WHIP_PRICE = 8;
class Beverage { //饮料
(1) :string description;
public:
(2) (){ return description; }
(3) ;
};
class CondimentDecorator : public Beverage { //配料
protected:
(4) ;
};
class Espresso : public Beverage { //蒸馏咖啡
public:
Espresso () {description="Espresso"; }
int cost(){return ESPRESSO_PRICE; }
};
class DarkRoast : public Beverage { //深度烘焙咖啡
public:
DarkRoast(){ description = "DardRoast"; }
int cost(){ return DRAKROAST_PRICE; }
};
class Mocha : public CondimentDecorator { //摩卡
public:
Mocha(Beverage*beverage){ this->beverage=beverage; }
string getDescription(){ return beverage->getDescription()+",Mocha"; }
int cost(){ return MOCHA_PRICE+beverage->cost(); }
};
class Whip :public CondimentDecorator { //奶泡
public:
Whip(Beverage*beverage) { this->beverage=beverage; }
string getDescription() {return beverage->getDescription()+",Whip"; }
int cost() { return WHIP_PRICE+beverage->cost(); }
};
int main() {
Beverage* beverage = new DarkRoast();
beverage=new Mocha( (5) );
beverage=new Whip( (6) );
cout<<beverage->getDescription()<<"¥"<<beverage->cost() endl;
return 0;
}
编译运行上述程序,其输出结果为:
DarkRoast, Mocha, Whip ¥38
第8题:
阅读下列说明与相关类图,填空并回答问题。
【说明】
装饰者模式动态地给一个对象添加一些额外的职责,就扩展功能而言,该模式比生成子类方式更加灵活。装饰模式的提出有助于解决滥用继承的问题。
例如,一个名叫星巴兹(Starbuzz)的咖啡连锁店提供多种多样的咖啡,最朴素的设计就是采用继承,即设计一个饮料抽象基类Beverage,让不同种类的咖啡HouseBlend、 Decaf、Espresso、DarkRoast继承Beverage类,如图13-23所示。Beverage类的cost()方法是抽象方法,每个子类的cost()方法实现即返回具体咖啡种类的价钱,Beverage类的 description实例变量由每个子类设置,用来描述该类饮料,Beverage类的getDescription()方法用来返回此描述。
客户在点咖啡时还可以要求添加各种各样的调料(Condiment),加入的调料不同所收取的费用也是不同的,让各种加了调料的不同咖啡都继承基类Beverage,当咖啡种类和调料种类很多时,组合种类的数量就会急剧增长,就会发生“类数量爆炸”现象,如图13-24所示。
显然,采用这种设计方式会使得代码的维护变得十分困难,可以采用装饰者模式来解决这个问题。软件设计师蝴蝶飞根据装饰者模式的思想设计了如图13-25所示的类图。
在图13-25中,将各种调料Milk、Mocha、Soy、Whip作为装饰者来装饰House- Blend、Decal、Espresso、DarkRoast等各种咖啡。下面的Java程序(代码13-6)对应其具体实现。
【代码13-6】
import java.io.* ;
abstract class Beverage{
String description="Unknown Beverage";
public String getDescription(){
return description;
}
public (1) double cost();
}
abstract class CondimentDecorator (2) Beverage {
public abstract Strmg getDescription();
}
class Decafextends Beverage {
public Decaf(){
description="Decaf Coffee";
}
public double cost(){
return 1.05;
}
}
class Espresso extends Beverage {
public Espresso() {
description="Espresso";
}
public double cost(){
return 1.99;
}
}
class HouseBlend extends Beverage{
public HouseBlend(){
description="House Blend Coffee";
}
public double cost(){
return.89;
}
}
class DarkRoast extends Beverage{
public DarkRoast(){
description="Dark Roast Coffee";
}
public double cost(){
return.99;
}
}
class Mocha extends CondtmentDecorator{
Beverage (3);
public Mocha(Beverage beverage){
this.beverage=beverage;
}
public String getDescription(){
return beverage.getDescription()+", Mocha";
}
public double cost(){
return.20+beverage.cost();
}
}
Class Soy extends CondimentDecorator{
Beverage beverage;
public Soy(Beverage beverage) {
this.beverage=beverage;
}
public Strillg getDescription(){
第9题:
class One { public One() { System.out.print(1); } } class Two extends One { public Two() { System.out.print(2); } } class Three extends Two { public Three() { System.out.print(3); } } public class Numbers{ public static void main( String[] argv) { new Three(); } } What is the result when this code is executed?()
第10题:
英译中:We provide our customers with a variety of services such as currency exchange, food and beverage, laundry, mail, etc.