问答题 阅读以下说明和Java代码,填补代码中的空缺,将解答填入答题纸的对应栏内。
[说明]
设计RGB方式表示颜色的调色板,进行绘图。其类图如下图所示。该程序的Java代码附后。
【正确答案】
【答案解析】MyColor[]
this.number
this.palette
static final
new MyColor [解析] 本题考查Java语言程序设计的能力,涉及类、对象、方法的定义和相关操作。要求考生根据给出的案例和代码说明,认真阅读并理清程序思路,然后完成题目。
先考查题目说明。本题目中涉及到本题目中涉及到颜色、调色板、绘图等类以及初始化和调色相关等操作。根据说明进行设计。
类图中给出三个类Drawing、Palette和MyColor及其之间的关系。Drawing与Palette、MyColor之间具有关联关系,Palette与MyColor之间是聚合关系。
MyColor为以RGB方式表示颜色,由属性red、green和blue表示,每个MyColor对象即为一个RGB颜色。MyColor具有两个构造器,缺省构造器将RGB颜色均初始化为0;带参数的构造方法将当前对象的RGB值设置为调用构造方法时消息中所传递的参数值。toString()用来构造并返回当前对象的RGB值的字符串供测试使用。
Palette类用于表示调色板,有调色板颜色数,用int型number表示,有MyColor对象数组,用MyColor[]palette表示。Palette的缺省构造方法中,将number设置为256色,并将palette初始化成256色MyColor数组。另一个构造方法Palette(MyColor[]pale,intnumber)中参数有MyColor对象数组pale以及颜色数量number。该构造方法设置当前调色板对象的颜色数量,用this.number表示当前对象的number属性,将参数palette数组赋值给当前对象的palette,用this.palette表示当前对象的palette属性。toStringO方法用来构造并返回palette中每个颜色对象的颜色的字符串,供测试使用。在toString()方法体内部,构造字符串时用+进行拼接palette[i]时,每个数组元素调用当前对象的toString()构造并返回一个RGB颜色的字符串。
Drawing类属性int COLORNUMBER定义绘画时所用的颜色数量(本例中设置为16表示基于16色绘图)。main()方法声明调色板Palette palette、定义COLORNUMBER色MyColor对象数组color,即:
MyColor[]color=new MyColor[COLORNUMBER];
随机生成RGB颜色并根据此颜色创建COLORNl7MBER个MyColor对象,即循环COLORNUMBER次,每次循环生成随机的RGB颜色后调用MyColor的带参数构造器创建MyColor对象,即:
color[i]=new MyColor(red,green,blue);
所有颜色数组创建完成后,基于所创建的COLORNUMBER个MyColor对象数组创建调色板,即:
palette=new Palette(color, COLORNUMBER);
采用System.out.println(palette);进行打印(模拟绘图),其中会自动调用调色板的toString()方法。由于COLORNIMBER的作用是绘图的颜色数量,在创建MyColor对象数组时作为元素个数,所以,需要是static final静态常量。
综上所述,空(1)需要表示MyColor对象数组,即MyColor[];空(2)需要表示当前对象的number属性,即this.number;空(3)需要当前对象的palette属性,即this.palette;空(4)需要表示COLORNUMBER为静态常量,即static final:空(5)处为创建MyColor类的对象,即new MyColor。