黑马程序员技术交流社区
标题:
接口的第三个方法出现错误 注释的部分编译错误 提示是.....
[打印本页]
作者:
黑马灬小寒
时间:
2014-3-28 11:30
标题:
接口的第三个方法出现错误 注释的部分编译错误 提示是.....
interface FiveAndOne
{
long factorial(int m); //求参数的阶乘
long myPower(int m,int n); //求参数m的n次方
//boolean findFactorSum(int m,int n); //判断参数中较小数是否是较大数的因子
}
//让Usb类实现FiveAndOne接口
public class Usb implements FiveAndOne
{
//实现factorical方法
public long factorial(int m)
{
int f=1;
for(int i=1;i<=m;i++)
{f*=i;}
return f;
}
//实现myPower方法
public long myPower(int m,int n)
{
int result=1;
for(int i=1;i<=n;i++)
{
result*=m;
}
return result;
}
//实现findFactorSum方法
/*public boolean findFactorSum(int m,int n);
{
if(m<n)
{
if(n%m==0)
{
return true;
}
}
if(m>n)
{
if(m%n==0)
{
return true;
}
}
else
{
return false;
}
}*/
public static void main(String[] args)
{
//创建一个Usb对象,当成FiveAndOne使用
FiveAndOne obj = new Usb();
System.out.println(obj.factorial(5));
System.out.println(obj.myPower(5,6));
//System.out.println(obj.findFactorSum(5,30));
}
}
作者:
osully
时间:
2014-3-28 11:43
第一
函数后面多了个分号,导致后面的主体失效
第二为了安全起见编译器要你必须返回值外面必须有一个
public boolean findFactorSum(int m, int n)
{
if (m < n) {
if (n % m == 0) {
return true;
}
}
if (m > n) {
if (m % n == 0) {
return true;
}
}
else {
return false;
}
return false;
}
复制代码
作者:
yanzhendong
时间:
2014-3-28 11:52
第一个错误,楼主实现findFactorSum方法时后面多了一个; 还有楼主缺少返回语句,else关键字总是与理他最近的那个if匹配,也就是楼主的
if(m>n)
{
if(m%n==0)
{
return true;
}
}
else
{
return false;
}
复制代码
等价于:
if (m > n) {
if (m % n == 0) {
return true;
} else {
return false;
}
}
复制代码
这样当m>n为假时函数就没有返回值了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2