现有  class Beverage {  Beverage ()  {  System.out.print ("bev

题目
单选题
现有  class Beverage {  Beverage ()  {  System.out.print ("beverage ");  }        }  class Beer extends Beverage {  public static void main{string [] args) {        Beer b = new Beer (14) ;       }  public int Beer(int x) {       this () ;  System.out.print ("beerl") ;      }  public Beer() { System.out.print("beer2 "); }     }  结果是什么?()
A

beerl beverage

B

beer2 beverage

C

beverage beer2 beerl

D

编译失败

参考答案和解析
正确答案: C
解析: 暂无解析
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第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.编译失败


参考答案:D

第2题:

禁止游客随身携带( )

A.BIG SCISSORS

B.YOGURT

C.TIN

D.AERATED BEVERAGE


正确答案:A

第3题:

Which ________ do you prefer, coffee or orange juice?

(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


正确答案:
(1) abstract
(2) String getDescription
(3) abstract int cost()
( 4) Beverage beverage
(5) beverage
(6) beverage

第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.编译失败


参考答案: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


正确答案:
(1) protected
(2) virtual string getDescription
(3) virtual int cost()=0
(4) Beverage*beverage
(5) beverage
(6) beverage

第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(){


正确答案:[问题1] (1)abstract (2)extends (3)beverage (4)Mocha [问题2] 执行题目的程序代码得到的输出结果为: Espresso $1.99 Dark Roast Coffee Mocha Mocha Whip $1.49 House Blend Coffee Soy Mocha Whip $1.34
[问题1] (1)abstract (2)extends (3)beverage (4)Mocha [问题2] 执行题目的程序代码,得到的输出结果为: Espresso $1.99 Dark Roast Coffee, Mocha, Mocha, Whip $1.49 House Blend Coffee, Soy, Mocha, Whip $1.34 解析:装饰者(Decorator)模式动态地给一个对象添加一些额外的职责。Decorator意为装饰
者、油漆工,译成后者更为形象。所谓的“油漆工”,就是将被装饰者对象“粉刷或油漆”上相应的功能。题目举了一个咖啡馆设计咖啡的例子,若采用普通继承的方式将引起所谓的“类数量爆炸”现象,因为当基本咖啡种类和调料种类很多时,它们的组合种类会非常多,不利于代码的维护。
在装饰者模式中,装饰者和被装饰者必须是同一类型,亦即它们具有共同的超类,这里利用继承达到“类型匹配”的目的,而不是利用继承获得“行为”。当将装饰者和被装饰者的组件组合时就加入了新的行为,所得到的新行为并不是继承自超类,而是由组合对象得来的。使用该方式可以将所有饮料和调料更有弹性地加以混合与匹配。
根据类图13—25很容易将程序填充完整。该类图遵循UML标准,类名用斜体表示的类表示其是抽象类,方法名用斜体表示的方法代表其是抽象方法。饮料类Beverage是抽象类,因此,第(1)空填abstract。从类图可知,装饰者抽象类CondimentDecorator也从饮料类Beverage继承而来,这使得装饰者和被装饰者是同一类型,亦即它们具有共同的超类 Beverage,所以第(2)空应填extends。注意,不要丢了最后一个字母s,否则可能会被扣分。
Decal、Espresso、HouseBlend和DarkRoast四类基本咖啡都从Beverage类继承而来,在其cost()方法中直接返回该种咖啡的价钱,不必考虑调料的价钱。Mocha、Soy、Whip、 Milk四种调料都继承了CondimentDecorator类,它们都拥有一个实例变量beverage,用来记录被装饰的饮料,即将被装饰的饮料作为构造器的参数,再由构造器将此饮料记录在变量中,对应语句“this.beverage=beverage;”,this表示本类对象的引用,其后带了beverage,表明该类有一个名为beverage的变量,所以第(3)空填beverage。
在这四种调料的cost()方法中,要计算相应的加了该种调料的饮料的总价钱,只要将原基本饮料的价钱加上该种调料的价钱即可。例如,加了Mocha调料的饮料的总价钱为“0.20+beverage.cost();”,其中0.20是Mocha调料的价钱。
当用某种调料来装饰某种基本饮料时,只要将饮料作为参数构造该种调料对象即可。例如,当顾客要订一杯加了两份Macha调料、一份Whip调料的DarkRoast咖啡时,先用 Mocha对象装饰(包装、包裹、油漆)它,即beverage2=newMocha(beverage2);,然后再进行一次装饰,所以第(4)空应填Mocha。
该段程序输出的结果很简单,即求各种具体咖啡的价钱——只要将调料和基本咖啡的价钱相加即可。

第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?() 

  • A、 1
  • B、 3
  • C、 123
  • D、 321
  • E、 The code rims with no output.

正确答案:C

第10题:

英译中:We provide our customers with a variety of services such as currency exchange, food and beverage, laundry, mail, etc.


正确答案:我们向顾客提供货币兑换、餐饮、洗衣、函件等多项服务。

更多相关问题