package mypackage;
import java.util.Random;
interface SharedConstants
{
int NO=0;
int YES=1;
int MAYBE=2;
int LATER=3;
int SOON=4;
int NEVER=5;
}
class B implements SharedConstants
{
Random rand=new Random();
int ask()
{
int prob=(int) (100 * rand.nextDouble());
if (prob<30)
return NO;
else if(prob<60)
return YES;
else if(prob<75)
return LATER;
else if(prob<90)
return SOON;
else
return NEVER;
}
}
class c implements SharedConstants
{
static void answer(int result)
{
switch(result)
{
case NO:
System.out.println("No");
break;
case YES:
System.out.println("Yes");
break;
case LATER:
System.out.println("Later");
break;
case SOON:
System.out.println("Soon");
break;
case NEVER:
System.out.println("Never");
break;
}
}
}
class interfacedem1
{
public static void main(String[] args)
{
System.out.println("prog starts");
B dew=new B();
answer(dew.ask);
answer(dew.ask);
answer(dew.ask);
answer(dew.ask);
System.out.println("prog ends");
}
}
问问题
68 次
3 回答
7
ask()
是一种方法,而不是一个领域。您需要将其作为方法调用:
answer(dew.ask());
此外,您可能应该将您的界面替换为enum
. 它更适合存储枚举常量:
enum Probabilities {
NO,
YES,
MAYBE,
LATER,
SOON,
NEVER;
}
并将类从实现接口中排除。
于 2013-08-10T16:31:45.763 回答
1
首先,您在 之后缺少括号ask()
,例如:
answer(dew.ask());
^^
其次,ask()
应该是public
:
public int ask()
...
于 2013-08-10T16:32:18.947 回答
0
answer()
静态方法,所以使用类名调用它。
ask()
是一种使用“()”调用它的方法。更换你的
answer(dew.ask);
和
c.answer(dew.ask());
于 2013-08-10T16:44:18.890 回答