下面是一个Applet程序,其功能是从3-100之间(包括3和100)每隔0.5秒显示一个新的数字,如果数字为素数,则显示为灰色,其他为绿色。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。 注意:不改动程序的结构,不得增行或删行。

admin2009-01-15  57

问题 下面是一个Applet程序,其功能是从3-100之间(包括3和100)每隔0.5秒显示一个新的数字,如果数字为素数,则显示为灰色,其他为绿色。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
   注意:不改动程序的结构,不得增行或删行。
   程序运行结果如下:

   import java.awt.*;
   import java.applet.Applet;
   /*
   <applet code=ex4_3.class width=800 height=400>
   </applet>
   */
   public class ex4_3 extends Applet {
      public Color color4_3 = Color.black;
      private int n4_3 = 3;
      public myPrime   thPrime4_3;
      public void init()  {
         thPrime4_3 = new myPrime(this);
         thPrime4_3.start();
      }
      public void paint(Graphics g)  {
        g.setColor(color4_3);
        g.drawString(n4_3,  50,  50);
      }
      public int getInt(){
        return n4_3;
      }
      public void setInt(int i){
        n4_3 =i;
      }
   }
   class myPrime extends Thread {
     ex4 3 obj4_3;
     myPrime (ex4_3 o)  {
        this.obj4_3 = o;
     }
     public boolean isPrime(int n)  {
   boolean bPrime = true;
   int i=2;
      if(n<31 In>100)
        return false;
    while(i<n-1&&bPrime){
     if  (  (n % i )  == 0)
        bPrime = false;
     i++;
   }
   return bPrime;
    }
     public void run()  {
        int i;
         for (i = 3;i<100; i++)  {
          if  (isPrime(i))
            obj4_3.color4_3 = Color.gray;
         else
            obj4_3.color4_3 = Color.green;
            obj4_3.n4_3;
            obj4_3.repaint();
            try {
              sleep(500);
            } catch  (InterruptedException ie)  {
          }
       }
     }
   }
   ex4_3.htm1
   <HTML>
   <HEAD>
     <TITLE>ex4_3    </HEAD>
   <BODY>
   <applet code="ex4_3.class" width=800 height=400 >
   </applet>
   </BODY>
   </HTML>

选项

答案String.valueOf(n4_3) i<101或者i<=100 obj4_3.setInt(i)

解析 本题主要考查线程的概念和使用,Applet的执行过程和窗口,for循环语句以及字符串和int型的数据转换和面向对象编程的基本思想。解题关键是熟练地将Applet的执行和线程的基本思想结合完成一定的综合性的应用;熟练掌握线程的建立、运行以及线程类与封装类之间的信息传递方式,即通过对象调用封装的方法来进行,如语句。obj4_3.repaint()。本题中,第一处,不可以直接填入n4_3,会导致参数类型不符合的错误,应该用String类的valueOf()方法对int型数据进行转换得到String类型数据:第二处,注意题目要求,需要包括3和100,因此循环变量的上界应该是i<101或者i<=100,第三处,由于n4_3是类ex4_3的私有成员,因此不可以直接用对象。obj4_3来调用这个成员变量,需要通过类ex4_3的方法setInt()来实现对私有成员变量的修改。
转载请注明原文地址:https://kaotiyun.com/show/iIID777K
0

相关试题推荐
最新回复(0)