阅读以下说明和Java代码。[说明]已知类Stock和类JavaMain都定义在JavaMain.java文件中,类Stock的定义中有四处错误,分别在代码的第01、02、06、07行。请修改错误并给出修改后该行的完整代码,并写出改正错误后程序运行的输出结果。[Java代码]01 public class Stock{02 static {03 shares=0;04 share_val=0.0;05 }06 private Stock(){getData();}07 private Stock(int

题目

阅读以下说明和Java代码。

[说明]

已知类Stock和类JavaMain都定义在JavaMain.java文件中,类Stock的定义中有四处错误,分别在代码的第01、02、06、07行。请修改错误并给出修改后该行的完整代码,并写出改正错误后程序运行的输出结果。

[Java代码]

01 public class Stock{

02 static {

03 shares=0;

04 share_val=0.0;

05 }

06 private Stock(){getData();}

07 private Stock(int n, double pr=0){

08 shares=n;

09 share_val=pr;

10 getData();

11 }

12 public void getData(){

13 System.out.print(shares+":"+share_val+"");

14 }

15 private int shares; //非静态变量

16 private double share_val; //非静态变量

17 };

18

19 public class JavaMain{

20 public static void main(String args[]){

21 Stock a=new Stock();

22 Stock b=new Stock(1,67.5);

23 //其它代码省略,且代码无输出

24 }

25 }


相似考题
更多“阅读以下说明和Java代码。[说明] 已知类Stock和类JavaMain都定义在JavaMain.java文件中,类Stock的 ”相关问题
  • 第1题:

    阅读以下说明和 C++代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 【说明】 在股票交易中,股票代理根据客户发出的股票操作指示进行股票的买卖操作。其类图如图5-1所示,相应的c++代码附后。图5-1 类图

    【C++代码】 include <iostream> include <string> include <vector> using namespace std; class Stock { private: string name; int quantity; public: Stock(string name ,int quantity) { this->name= name;this->quantity = quantity; } void buy() { cout<<" [买进]股票名称: "<< name << ",数量: "<< quantity << endl;} void sell() { cout<<" [卖出]股票名称: " << name << ",数量:"<< quantity <<endl; } }; class Order { public: virtual void execute() = 0; }; classBuyStock: (1) { private: Stock* stock; public: BuyStock(Stock* stock) { (2) = stock; } void execute() { stock->buy () ; } }; //类SellStock的实现与BuyStock类似,此处略 c1ass Broker { private: vector < Order*> orderList; pub1ic: void takeOrder( (3) order) { orderList.push_back(order);} void p1aceOrders() { for (inti=O; i<orderList.size(); i++) { (4) -> execute () ; } orderList.c1ear(); } }; c1ass StockCommand { pub1ic: void main () { Stock* aStock = new Stock("股票 A" ,10); Stock* bStock = new Stock("股票 B" ,20); Order* buyStockOrder = new BuyStock(aStock); Order* se11StockOrder = new Se11Stock(bStock); Broker* broker = new Broker(); broker->takeOrder(buyStockOrder); broker->takeOrder(se11StockOrder); broker-> (5) () ; } }; int main() { StockCommand* stockCommand = new StockCommand(); stockCommand->main(); de1ete stockCommand; }


    正确答案:(1) public Order
    (2) this->stock或(*this)stock
    (3) Order*
    (4) orderList[i]或*(orderList+i)
    (5) placeOrders

  • 第2题:

    阅读以下说明和C++代码,填补代码中的空缺,将解答填入答题纸的对应栏内。
    [说明]
    在股票交易中,股票代理根据客户发出的股票操作指示进行股票的买卖操作。其类图如下图所示,相应的C++代码附后。

    类图

    [C++代码] #include<iostream> #include<string> #include<vector> using namespacestd; class Stock { private: string name; int quantity; public: Stock(stringname,int quantity) {this->name=name;this->quantity =quantity;} void buy() {cout<<"[买进]股票名称:"<<name<<",数量:"<<quantity<< endl;} void sell() {cout<<"[卖出]股票名称:"<<name<<",数量:"<<quantity <<endl;} }; clasS order{ public: virtual voidexecute()=0; }; classBuyStock:______ { private: Stock* stock; public: BuyStock(Stock*stock){______ =stock; } void execute(){ stock一>buy(); } }; //类SellStock的实现与BuyStock类似,此处略 class Broker{ private: vector<Order*> orderList; public: voidtakeOrder(______ order)( orderLiSt.push back(order);} void placeorders() { for(int i=0;i<orderList.Size(); i++){______ ->execute();} 0rderLiSt.clear(); } }; classStockCommand{ public: VOid main(){ Stock* aStock=newStock("股票A",10); Stock*bStock=newStock("股票B",20); Order*buyStockOrder=new BuyStock(aStock); Order*sellStockOrder=new SellStock(bStock); Broker* broker=newBroker(); broker->takeOrder(buyStockorder); broker->takeOrder(sellStockOrder); broker-> ______ (); } }; int main(){ StockCommand*stockCommand=new StockCommand(); StockCommand->main(); deleteStoCkCommand; }


    答案:
    解析:
    publicOrder
    this->stock 或(*this).stock
    Order*
    orderList[i] 或 *(orderList+i)
    placeOrders


    【解析】

    本题考查C++语言程序设计能力,涉及类、对象、函数的定义和相关操作。要求考生根据给出的案例和代码说明,认真阅读理清程序思路,然后完成题目。
    先考查题目说明,在股票交易中,股票代理根据客户发出的股票操作指示进行股票的买卖操作。根据说明进行设计,题目说明中给出了类图。涉及到股票(Stock)、股票代理(Broker)、股票操作指示(StockCommand)、买卖股票(Order接口、BuyStock与SellStock类)等类以及相关操作。
    Stock类定义了两个函数buy()和sell(),分别实现买和卖的操作。在构造函数中接收参数name和quantity,分别表示买卖股票的名称和数量,对当前所创建对象中的name和quantity赋值,用this表示区别当前对象,所以构造函数为:Stock(String name,int quantity){
    thiS->name=name;
    thiS->quantity=quantity;
    }
    Order虚类声明纯虚函数execute():virtual void execute()=0;表示执行股票交易(即买和卖)的函数原型。
    BuyStock继承Order,构造函数接收参数stock,实现函数execute(),进行股票买入,stock->buy()。SellStock和BuyStock类似,继承Order,构造函数接收参数stock,实现函数execute(),进行股票卖出,stock->sell()。
    Broker类实现接受客户的买卖指示tackOrder(),接收BuyStock或者SellStock的实例,BuyStock和SellStock均是Order的子类,所以BuyStock和SellStock的实例也是Order,因此tackOrder0所接收的参数用Order类型。接收到买卖指示之后,存入vector<Order*>类型的orderList中,即orderList.push_back(order)。placeOrders()函数是实现将所有买卖股票的指示进行实际买入和卖出操作,即采用for循环,对每个orderList中的Stock实例,调用在BuyStock和SellStock中实现的execute()加以执行。for(int i=0; i<orderList.Size();i++) {orderList[i]->execute();}
    StockCommand主要是根据操作指示进行股票交易,实现为一个函数main(),其中创建欲进行交易的股票对象aStock和bStock,创建买aStock卖bStock股票的对象buyStockOrder和sellStockOrder对象:Order*buyStockorder=new BuyStock(aStock);
    Order* sellStockOrder=new SellStock(bStock);
    再创建股票代理Broker类的对象broker,并接收买卖股票的指示:broker->takeOrder(buyStockOrder);
    broker->takeOrder(sellStockOrder);
    最后将所有买卖指示用placeOrders()下执行命令:broker->placeOrders();
    主控逻辑代码在main()函数中实现。在main()函数中,先初始化StockCommand类的对象指针stockCommand,代码为:StockCommand* stockCommand=new StockCommand();
    即生成一个股票指示,并调用其main()函数启动股票交易,即调用stockCommand的main()函数,实现股票的买卖指示的创建和执行。主控main()函数中,使用完数组对象之后,需要用delete操作释放对象,对stockCommand对象进行删除,即delete StockCommand;
    因此,空(1)需要表示继承Order类的"public Order";空(2)需要表示当前对象的stock属性,填入"this->stock"或"(*this).stock";空(3)需要填入BuyStock和SellStock均能表示的父类"Order*";空(4)需要orderList中每个对象指针调用execute(),即填入"orderList[i]"或"*(orderList+i)";空(5)处为调用"placeOrders()"来下达执行命令。

  • 第3题:

    阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】 某文件管理系统中定义了类OfficeDoc和DocExplorer,当类OfficeDoc发生变化时,类DocExplorer的所有对象都要更新其自身的状态,现采用观察者(Observer)设计模式来实现该需求,所设计的类图如图6-1所示。



    答案:
    解析:
    1: void update()2: Observer3: obs.update()4: Subject5: Attach(this)

  • 第4题:

    阅读以下说明和 Java 代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 【说明】 在股票交易中,股票代理根据客户发出的股票操作指示进行股票的买卖操作。其类图如图 6-1 所示。相应的Java 代码附后。图6-1 类图

    【 Java 代码】 import java.util.ArrayList; import java.util.List; class Stock { private String name; private int quantity; public Stock(String name ,int quantity) { this.name = name; this.quantity = quantity; } public void buy() { System.out.println("[ 买进]: " + name + ",数量. " + quantity);} public void sell() { System.out.println("[ 卖出]: " + name + ",数量. " + quantity);} } interface Order { void execute(); } class BuyStock (1) Order { private Stock stock; public BuyStock(Stock stock) { (2) = stock; } public void execute() { stock.buy();} } //类SellStock实现和BuyStock 类似,略 class Broker { private List<Order> orderList = new ArrayList<Order>(); public void takeOrder( (3) order) { orderList.add(order); } public void placeOrders() { for ( (4) order : orderList) { order.execute(); } orderList.clear(); } } public class StockCommand { public static void main(String[] args) { Stock aStock = new Stock("股票 A" ,10); Stock bStock = new Stock("股票 B" ,20); Order buyStockOrder = new BuyStock(aStock); Order sellStockOrder = new SellStock(bStock ); Broker broker = new Broker(); broker.takeOrder(buyStockOrder); broker.takeOrder(sellStockOrder); broker. (5) ; } }


    正确答案:(1) implements
    (2) this.stock
    (3) Order
    (4) Order
    (5) placeOrders()

  • 第5题:

    阅读以下说明和Java代码,填补代码中的空缺,将解答填入答题纸的对应栏内。
    [说明]
    在股票交易中,股票代理根据客户发出的股票操作指示进行股票的买卖操作。其类图如下图所示。相应的Java代码附后。

    类图

    [Java代码] importJava.util.ArrayList; importjava.util.List; ClaSS Stock{ private Stringname; private intquantity; publicStock(String name,int quantity){ thiS.name=name;this.quantity=quantity; } public void buy(){ System.out.println("[买进]:"+name+",数量:" +quantity);} public void sell(){System.out.println("[卖出]:"+name+",数量:" +quantity);} } interface Order { VOid execute(); } class BuyStock______ Order { private StockStock; publicBuyStock(Stock stock){______=stock; } public voidexecute(){ stock.buy(); } } //类SellStock实现和BuyStock类似,略 clasS Broker{ private List<Order>orderList=new ArrayList<Order>(); Dublic voidtakeOrder(______ Order){ orderList.add(order); } public voidplaceorders(){ for {______order:orderList) {order.execute(); } orderLiSt.clear(); } } public classStockCommand { public static voidmain(String[]args){ Stock aStock:newStock("股票A",10); Stock bStock=newStock("股票B",20); OrderbuyStockorder=new BuyStock(aStock); OrdersellStockOrder=new SellSt0Ck(bStoCk); Broker broker=newBroker(); broker.takeOrder(buyStockorder); broker.takeOrder(sellStockOrder); broker.______; } }


    答案:
    解析:
    implements
    this.stock
    Order
    Order
    placeOrders()

    【解析】

    本题考查Java语言程序设计的能力,涉及类、对象、方法的定义和相关操作。要求考生根据给出的案例和代码说明,认真阅读理清程序思路,然后完成题目。
    先考查题目说明,在股票交易中,股票代理根据客户发出的股票操作指示进行股票的买卖操作。根据说明进行设计,题目说明中给出了类图。涉及到股票(Stock)、股票代理(Broker)、股票操作指示(StockCommand)、买卖股票(Order接口、BuyStock与SellStock类)等类以及相关操作。
    Stock类定义了两个操作buy()和sell(),分别实现买和卖的操作。在构造函数中接收参数name和quantity,分别表示买卖股票的名称和数量,对当前所创建对象中的name和quantity赋值,用this表示区别当前对象,所以构造器为:

    publiC Stock(String name,int quantity) {