一道关于JAVA的题目,急求答案。

(1)用继承Thread类方法创建线程MyThread类,该线程的功能是输出26个英文字母(大写,不换行),每输出一个字母后,休眠时间是500—2000毫秒的随机数;
(2)用实现Runnable接口方法创建线程MyRunnalbe类,该线程的功能是输出26个英文字母(小写,不换行),每输出一个字母后,休眠时间是500—2000毫秒的随机数;
(3)在主类中分别创建这两个类的对象t1、t2,并启动。
(提示:500—2000的随机数表示:500+(2000-5000)*Math.random() )
附上我自己的答案:
class MyThread extends Thread{
public void run(){
char ch;
try{
for (ch='A';ch<='Z';ch++){
System.out.print(ch+" ");
sleep((int)(500+(2000-5000)*Math.random()));
}
}catch (InterruptedException e){
return;
}
}
}

class MyRunnable implements Runnable {
public void run(){
char ch;
try{
for (ch='a';ch<='z';ch++){
System.out.print(ch+" ");
Thread.sleep((int)(500+(2000-5000)*Math.random()));
}
}catch (InterruptedException e){
return;
}
}
}

public class ThreadTest {
public static void main(String args[]) {
MyThread t1 = new MyThread();
MyRunnable r = new MyRunnable();
Thread t2 = new Thread(r);
t1.start();
t2.start();
}
} 请问为什么无法编译?

那是因为你随机数产生的是负数,你说让一个线程休眠时间为负数,那怎么可能,正确如下:class MyThread extends Thread{
public void run(){
char ch;
try{
for (ch='A';ch<='Z';ch++){
System.out.print(ch+" ");
Thread.sleep((int)(500+(2000-500)*Math.random()));
}
}catch (InterruptedException e){
return;
}
}
}

class MyRunnable implements Runnable {
public void run(){
char ch;
try{
for (ch='a';ch<='z';ch++){
System.out.print(ch+" ");
Thread.sleep((int)(500+(2000-500)*Math.random()));
}
}catch (InterruptedException e){
return;
}
}
}

public class ThreadTest {
public static void main(String args[]) {
MyThread t1 = new MyThread();
MyRunnable r = new MyRunnable();
Thread t2 = new Thread(r);
t1.run();
t2.start();
}
}
如果是t1.start()那么将会交替产生大小字母,而t1.run()则会产生出所有大写字母后,再差生所有小写字母
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-06-06
楼上说的对啊,不过该这样改,把500+(2000-5000)*Math.random() 改成500+15000*Math.random()
class MyThread extends Thread{
public void run(){
char ch;
try{
for (ch='A';ch<='Z';ch++){
System.out.print(ch+" ");
sleep((int)(500+15000*Math.random()));
}
}catch (InterruptedException e){
return;
}
}
}

class MyRunnable implements Runnable {
public void run(){
char ch;
try{
for (ch='a';ch<='z';ch++){
System.out.print(ch+" ");
Thread.sleep((int)(500+15000*Math.random()));
}
}catch (InterruptedException e){
return;
}
}
}

public class ThreadTest {
public static void main(String args[]) {
MyThread t1 = new MyThread();
MyRunnable r = new MyRunnable();
Thread t2 = new Thread(r);
t1.start();
t2.start();
}
}

求问几道基础的java题目,急求能解释一下的话可以追加
&&是逻辑与的意思,两边条件都成立的就是true,不然就是false ||是逻辑或的意思,只要有一边成立就是true,两边都不成立就是false 答案是 1、B 2、D ,!(x == 4) 和 x != 4其实是同一种效果 3、C ,只要两边无交集就行 4、B ,&&左边短路了,没有调用了x--了 5、B,y>=10已经成...

java面向对象练习题,急求答案~ 【练习题】26.综合题 定义一个抽象的...
1.package com.huawei.test;public abstract class Role { \/\/姓名 private String name;\/\/性别 private String sex;\/\/年龄 private int age;public Role(){ } public Role(String name,int age,String sex){ this.name = name;this.age = age;this.sex = sex;} public String getName(){ ...

急求java试题解答,请高手解答
1 B 2 B 3 D(举例来说,为int类型的变量赋值1L或者2.1f,必然报错,因为无法转换)4 D(Java既有编译也有解释,但依题意解释是不对的)5 C 6 B 7 B(同5)8 A(返回类型、参数列表)9 A(字符串)10 C 11 A

急求答案~ java面向对象编程练习题 设计一个系统: XXX门的实现过程...
之后再创建个新类C,继承前面的抽象类A,并实现接口实现该抽象类的抽象方法B。之后实现所有方法。

Java程序设计,急求答案.
awt\/swing的题目就算了,懒得写,很少用 1、声明一个类Person,成员变量有姓名、出生年月、性别。有成员方法以显示姓名、年龄和性别。import java.text.SimpleDateFormat;import java.util.Date;class Person { public Person(String name, Date birthday, boolean isMale) { super();this.name = name...

急求设计一车类的java答案,具有wheels和weight两属性,汽车类car是vehicl...
public class Vehicle { private int wheels ;\/\/轮子个数 private int weight ;} public class Car extends Vehicle { public Car(){ wheels = 4;weight = 1000;\/\/随便写的 } } 要是要求wheels 和 weight 满足更多的需求,那就要再设计Wheels 类 把int换了,下面给你个例子 public class ...

根据要求编写java代码,急求,答案正确加100分!求高手!
根据要求编写java代码,急求,答案正确加100分!求高手! 1、使用socket网络编程技术,创建服务器端和客户端。2、创建Student类,设置属性stuName,stuAge,stuGender,stuClassName。创建Student.xml用户保存学员姓名,学员年龄,学员性别,... 1、 使用socket网络编程技术,创建服务器端和客户端。2、 创建Student类,设置属性stu...

急求java程序:从键盘上输入若干个正数,输出这些数中大于其平均值的数...
引用1楼 christal yhy的答案,考虑到浮点数的存在,特在此基础上优化一下,代码如下: public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("请输入要输入的个数:"); int count = scan.nextInt(); System.out.println("请输入" + count + "个正数(按...

java面向对象练习题,急求答案~ 【练习题】25.抽象类、继承、接口综合...
public void 水();} interface 过滤{} interface 缓冲{} interface 加热{} interface 放糖{} class 纯净水1 extends 水 imps 过滤,缓冲{} class 纯净水2 extends 水 imps 缓冲{} class 纯净水2 extends 水 imps 过滤{} 。。。abstract class Water { public abstract void Water();} interface...

《JAVA程序设计》考题急求答案,急求java试题简答,java课后习题答案...
对几个容易错的稍微注解下,1 D 2 C final修饰 3 B 4 B 5 C 6 B 7 C 8 C 9 B JAVA里面都是写作null的,而不是NULL 10 A: String.substring()大小写问题 11 C 12C 13A 14C 15A 16B 17C 18C 19D 20D管道流,此流一般用于多线 ...

相似回答