package com.test;
public interface Performer {
void perform();
}
package com.test;
public class Juggler implements Performer{
private int beanBags = 3;
public Juggler(){};
public Juggler(int beanBags){
this.beanBags = beanBags;
}
public void test(){
System.out.println("ttt");
}
public void perform(){
System.out.println("JUGGLER " +beanBags+ " BEANBAGS");
}
}
package com.test;
public class Do {
Juggler juggler = new Juggler(15);
juggler.perform();
juggler.test();
}
我是在myecplise里面运行的,它就一直提示错误,但是我觉得这就是一个很简单的类
和方法的调用,不知道到底错在哪里了,问同学,同学也不知道。。。。。
下面是截图:
....你new的时候,是在Do这个类的属性里面new了吧-,-
你要运行一个方法,得在main方法里面进行,这才是程序执行的入口,
public static void main(String args[]) {
Juggler juggler = new Juggler(15);
juggler.perform();
juggler.test();
}
在实现类的重写方法前加 @Override试试
1楼说的对,我都没注意 你调用没写在main方法里面..
你没有把本类实例化所以无法调用
你定义了一个Do类来实现Juggler方法的调用,其实你的问题不在于不可以new一个实体对象;
只是因为在调用实体对象方法的时候不读;方法调用以及其他的业务逻辑要在实体对象的方法或者构造函数中实现;
比如一楼说的main函数中也是可以的;当然也不只是main函数
比如你可以在Do实体对象中加上一个方法 如下:
public void doJuggler() {
Juggler juggler = new Juggler(15);//当然这个new操作也可以放在外面 ;一般是private 修饰
juggler.perform();
juggler.test();
}
以上就是。。。。。。