当我在start()方法中传递参数时,出现错误(最后5行)。该错误表明:类型thread中的方法start()不适用于参数(int)。正确的做法是什么?
该程序是关于在Java中使用多线程打印奇/偶数。
import java.util.Scanner;
class odd extends Thread
{
public void run(int y){
System.out.println("Odd numbers are:");
for (int i=0;i<=y;i++)
{
if (i%2!=0)
{
System.out.println(i);
}
}
}
}
class even extends Thread{
public void run(int x)
{
System.out.println("Even Numbers are");
for (int i=0; i<=x; i++)
{
if (i%2==0)
{
System.out.println(i);
}
}
}
}
class Star{
public static void main(String[] args)
{
System.out.println("Enter No. upto which even-odd should be printed");
Scanner var=new Scanner(System.in);
int vary= var.nextInt();
odd money=new odd();
even honey=new even();
money.start(vary);
Thread.sleep(5000);
honey.start(vary);
}
}
您的程序中存在语法和逻辑错误:
我已更正您的代码。下面的代码是使用Java多线程打印奇/偶数的正确代码。
class jo extends Thread {
private int number;
jo(int number) {
this.number = number;
}
@Override
public void run() {
System.out.println("Odd numbers are:");
for (int i = 0; i <= number; i++) {
if (i % 2 != 0) {
System.out.println(i);
}
}
}
}
class yo extends Thread {
private int number;
yo(int number) {
this.number = number;
}
@Override
public void run() {
System.out.println("Even Numbers are");
for (int i = 0; i <= number; i++) {
if (i % 2 == 0) {
System.out.println(i);
}
}
}
}
import java.util.Scanner;
class Star {
public static void main(String[] args) throws InterruptedException {
System.out.println("Enter No. upto which eve-od should be printed");
Scanner var = new Scanner(System.in);
int vary = var.nextInt();
jo money = new jo(vary);
yo honey = new yo(vary);
money.start();
Thread.sleep(5000);
honey.start();
}
}
已完成的更正:
2.要实现多线程,需要重写线程类的运行方法。run方法的正确签名是public void run() { //logical code will go here }
run方法不接受任何输入参数。
3.要开始执行线程,您需要调用Thread类的start方法。看起来像public void start()
。start方法不接受任何输入参数。
4.我在jo和yo课堂上对您的代码进行了逻辑更正。使用%运算符检查给定数字是偶数还是奇数。%运算符返回余数,如果一个数除以2时余数为零,则表示该数为偶数,否则为奇数。
您可以运行共享代码来检查输出。
祝您编码愉快!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句