【发布时间】:2022-01-20 14:40:29
【问题描述】:
我是 Java 编程的初学者。我在开发基于 Prime Checker 的程序时遇到了这个问题。已经指定了;
编辑器中的锁定代码将调用带有一个或多个整数参数的 checkPrime 方法。您应该以代码仅打印素数的方式编写 checkPrime 方法。 请仔细阅读编辑器中给出的代码。也请不要使用方法重载!
我想知道注释行 w.r.t 之后的语句的作用是什么。下面的Java程序?
它们在锁定代码中的用途是什么?
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
import java.lang.reflect.*;
import static java.lang.System.in;
class Prime
{
void checkPrime(int ... num)
{
for(int n:num)
{
int i,k=0;
for(i=1;i<=n;i++)
{
if(n%i==0)
++k;
}
if(k==2)
System.out.print(n+" ");
}
System.out.println();
}
}
public class Solution
{
public static void main(String[] args)
{
try
{
BufferedReader br=new BufferedReader(new InputStreamReader(in));
int n1=Integer.parseInt(br.readLine());
int n2=Integer.parseInt(br.readLine());
int n3=Integer.parseInt(br.readLine());
int n4=Integer.parseInt(br.readLine());
int n5=Integer.parseInt(br.readLine());
Prime ob=new Prime();
ob.checkPrime(n1);
ob.checkPrime(n1,n2);
ob.checkPrime(n1,n2,n3);
ob.checkPrime(n1,n2,n3,n4,n5);
//What do the following statements from below till the end mean?
Method[] methods=Prime.class.getDeclaredMethods();
Set<String> set=new HashSet<>();
boolean overload=false;
for(int i=0;i<methods.length;i++)
{
if(set.contains(methods[i].getName()))
{
overload=true;
break;
}
set.add(methods[i].getName());
}
if(overload)
{
throw new Exception("Overloading not allowed");
}
}
catch(Exception e)
{
System.out.println(e);
}
}
}
【问题讨论】:
-
嗯,它正在验证是否有多个具有相同名称的方法 - 即重载。我不太确定你在问什么......
标签: java exception overloading