阅读以下说明和Java代码,填补代码中的空缺。 【说明】 设计RGB方式表示颜色的调色板,进行绘图。其类图如图6一1所示。该程序的Java代码附后。 【Java代码】 //颜色类 class MyColor { priv

admin2016-09-08  55

问题 阅读以下说明和Java代码,填补代码中的空缺。
【说明】
    设计RGB方式表示颜色的调色板,进行绘图。其类图如图6一1所示。该程序的Java代码附后。

【Java代码】
    //颜色类
    class MyColor  {
    private int red, green, blue;
    public MyColor(){
    red=0;  green=0;  blue.0;
    }
    public MyColor(int red, int green, int blue){
    this.red=red;
    this.green=green;
    this.blue=blue;
    }
    //其他方法略
    public String toString(){
    return "Red:"+red十"\tGreen:¨+green+"\tBlue" +blue;
       }
    }
    //调色板类
    class Palette  {
    public int number;    //颜色数
    private(1)palette;    //颜色表
    public Palette(){
    number=256;
    palette=new MyColor[numberl;
    }
    public  Palette(MyColor[]  palette,  int  number){
(2)=number;
(3)=palette;
    }
    //其他方法略
    public  String  toString(){
    String str=  fffll
    for(int i=0;  i<number; i++){
    str  +=  i  +  ¨:¨  +palette  +  ¨\n”;
    }
    return str;
    }
}
    //绘图类
    class Drawing  {
    public(4)int COLORNUMBER=16;
    public static void main(String[] args){
    Palette palette;
    int red, green, blue;
    MyColor[]  color一new  MyColor ECOLORNUMBERl;
    for(int i=0;  i<COLORNUMBER; i++){
    red=(int)(Math.random()*256);
    green一(int)(Math.random()*256);
    blue=(int)(Math.random()*256);
    color   = (5)
(red,  green,  blue);
      }
    palette=new Palette(color,  COLORNUMBER);
    System.out.print1n(palette)j
    }
  }

选项

答案(1)MyColor[] (2)this.number (3)this.palette (4)static final (5)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属性。toString()方法用来构造并返回palette中每个颜色对象的颜色的字符串,供测试使用。在toString()方法体内部,构造字符串时用+进行拼接palette时,每个数组元素调用当前对象的toString()构造并返回一个RGB颜色的字符串。
    Drawing类属性int COLORNUMBER定义绘画时所用的颜色数量(本例中设置为16表示基于16色绘图)。main()方法声明调色板Palette palette、定义COLORNUMBER色MyColor对象数组color,即:
    MyColor[]  color=new MyColor [COLORNUMBER];
    随机生成RGB颜色并根据此颜色创建COLORNUMBER个MyColor对象,即循环COLORNUMBER次,每次循环生成随机的RGB颜色后调用MyColor的带参数构造器创建MyColor对象,即:
    color  =new MyColor(red,  green,  blue);
    所有颜色数组创建完成后,基于所创建的COLORNUMBER个MyColor对象数组创建调色板,即:
    palette=new Palette(color,  COLORNUMBER );
    采用System.out.print1n(palette);进行打印(模拟绘图),其中会自动调用调色板的toString()方法。由于COLORNUMBER的作用是绘图的颜色数量,在创建MyColor对象数组时作为元素个数,所以,需要是static final静态常量。
    综上所述,空(1)需要表示MyColor对象数组,即MyColor[];空(2)需要表示当前对象的number属性,即this.number;空(3)需要当前对象的palette属性,即this.palette;空(4)需要表示COLORNUMBER为静态常量,即static final;空(5)处为创建MyColor类的对象,即new MyColor。
转载请注明原文地址:https://jikaoti.com/ti/EHW7FFFM
0

最新回复(0)