专注在线职业教育23年
下载APP
小程序
希赛网小程序
导航

预约成功后,不错过重要时期

点击预约

2021下半年软件设计师下午真题及答案解析(六)

责编:胡媛 2021-11-08

试题六(共15分)

阅读下列说明和Java代码,将应填入(n)处的字句写在题纸的对应栏内。

【说明】

享元(flyweight)模式主要用于减少创建对象的数量,以低内存占用,提高性能。现要开发一个网络围棋程序允许多个玩家联机下棋。由于只有一台服务器,为节内存空间,采用享元模式实现该程序,得到如图6-1所的类图。

【Java代码】

import java.util.*:

enum PieceColor {BLACK,WHITE}//棋子颜色

class PiecePos{//棋子位置

private intx;

private int y:

pubic PiecePos(int a,int b){x=a;y=b;}

public int getX0{retun x;}

public int getYO{return y;}

}

abstract class Piece{//棋子定义

protected PieceColor m_color;//颜色

protected Piecemopos m_pos;//位置

public Piece(PieceColor,color PiecePos

pos){m color=color;

{:sod=sod u

(1);

}

class BlackPiece extends Piece{

public BlackPiece(PieceColor

color,PiecePos pos){super(color,pos);}

public void drawO{

System out println("draw a black

piece");}

}

class WhitePiece extends Piece{

public WhitePiece(PieceColor

color,PiecePos pos){super(c

olor,pos):}

public void draw0{

System.out.println("draw a white

piece");

}

{

class PieceBoard{

//棋盘上已有的棋子

private static final

ArrayList<(2)>m_arrayPiece=new Arra

yList

private String m_blackName;//黑方名称

private String m_whiteName;//白方名称

public PieceBoard(String black,String

white){

m_blackName=black;m_whiteName=white;

}

//一步棋,在棋盘上放一颗棋子

public void SetePiece(PieceColor

color,PiecePos pos){

(3)piece=null;

if(color==PieceColor.BLACK)(//放黑子

piece=new BlackPiece(color,pos);//获取一颗黑子

System.out.println(m_blackName+"在位置("+pos.getX0)

+","+pos.getYO+")");

(4):

{

else{//放白子

piece=new WhitePiece(color,pos);//获取一颗白子

System.out.println(m whiteName+"在位置("+pos.getX0)+

","+pos.getYO+")");

(5):

}

m_arrayPiece.add(piece);

}

}

相关推荐:2021下半年软件设计师下午真题及答案解析

热点推荐:2021年下半年软考真题及答案解析(汇总)

微信扫码估分 提前知成绩

2021下半年软考真题答案在线估分

更多资料
更多课程
更多真题
温馨提示:因考试政策、内容不断变化与调整,本网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!
相关阅读
查看更多

加群交流

公众号

客服咨询

考试资料

每日一练