[说明]
下面是一个Appkt程序,其功能是从3~100之间(包括3和100)每隔0.5秒显示一个新的数字,如果数字为素数,则显示为灰色,其他为绿色。
程序运行结果如图4所示。
import java. awt. *
import java. applet. Applet
< applet code = ex2_7, class width = 800 height = 400 >
</applet >
public class ex2_7 extends Applet
public Color color2_7 = Color. black;
private iht n2_7 = 3;
public myPrime thPrime2_7;
public void init( )
thPrime2_7 = new myPrime(this);
thPrime2_7, start( );
public void paint(Graphics g)
g, setColor( color2_7 );
g. drawString( (1) ,50,50);
public int getlnt( )
return n2_7;
public void setlnt (int i)
n2_7 = i;
class myPrime extends Thread I
ex2_7 obj2_7;
myPrime (ex2_7 o)
this. obj2_7 = o;
public boolean isPrime(int n)
boolean bPrime = true;
iht i =2;
if( (2) )
return false;
while( i < n - ]&&bPrime)
if( (3) )
bPrime = false;
i++;
return bPrime;
public void run( )
int i;
for (i = 3; (4) ;i++)
if (isPrime(i) )
obj2 _7, color2_7 = Color, gray;
else
obj2_7, color2_7 = Color. green;
(5) ;
obj2_7, repaint( );
try
sleep(S00);
catch (InterruptedException ie)
ex2_7, html
< HTML >
< HEAD >
<TITLE > ex2_7 </TITLE >
</HEAD >
< BODY >
<appletcode =" ex2_, class" width =800 height =400 >
</applet >
</BODY >
</HTML >
参考答案:(1)String. valueOf(n2_7) (2)n<3‖n>100 (3)(n%i) ==0
(4)i<101或者i<=100 (5)obj2_7. setInt(i)
解析: 本题主要考查线程的概念和使用,Applet的执行过程和窗口,for循环语句以及字符串和int型的数据转换和面向对象编程的基本思想。解题关键是熟练地将Applet的执行和线程的基本思想结合完成一定的综合性的应用;熟练掌握线程的建立、运行以及线程类与封装类之间酌信息传递方式,即通过对象调用封装的方法来进行,如语句 obi2_7. repaint()。本题中,不可以直接填人n2_7,会导致参数类型不符合的错误,应该用String类的vMueOf()方法对int型数据进行转换得到String类型数据;注意题目要求,需要包括3和100,因此循环变量的上界应该是i<101或者i<=100;由于n2_7是类ex2_7的私有成员,因此不可以直接用对象obi2_7来调用这个成员变量,需要通过类ex2_7的方法setInt()来实现对私有成员变量的修改。