我刚开始使用对象和类,当我尝试通过.method事物在类中使用方法时,我得到语法错误。我使用了几乎相同的格式来解决以前的练习问题,并且工作正常,所以我在这里画一个空白。
这是对象的类。
public class Automobile {
public double mpg;
public double gallons = 0;
public Automobile(double mpg) {
this.mpg = mpg;
}
public void fill(double f) {
gallons += f;
}
public void takeTrip(double m) {
gallons = gallons - (1 / (mpg / m));
}
public void reportFuel() {
System.out.println(gallons);
}
}
这是测试者类
public class Tester {
Automobile myBmw = new Automobile(24);
myBmw.fill(20);
myBmw.takeTrip(100);
myBmw.reportFuel();
}
答案 0 :(得分:3)
根据java语法,您不能编写如下所述的可执行语句:
myBmw.fill(20);
myBmw.takeTrip(100);
myBmw.reportFuel();
out of methods / constructors / blocks。您需要根据您的要求将代码移动到适当的位置。
答案 1 :(得分:0)
您Tester
类正在尝试在有效执行上下文之外执行代码(即method
或static
块... ...
public class Tester {
Automobile myBmw = new Automobile(24);
public Tester() {
myBmw.fill(20);
myBmw.takeTrip(100);
myBmw.reportFuel();
}
}
例如......
答案 2 :(得分:0)
你不能在这样的课堂上这样做。您必须从方法/块中调用其他类方法。
public class Tester {
Automobile myBmw = new Automobile(24);
public Tester(){ // It may be any other function
myBmw.fill(20);
myBmw.takeTrip(100);
myBmw.reportFuel();
}
// OR if you miss the main()
public static void main(String args[]){
Automobile myBmw = new Automobile(24);
myBmw.fill(20);
myBmw.takeTrip(100);
myBmw.reportFuel();
}
}
答案 3 :(得分:0)
更改块
public class Tester {
Automobile myBmw = new Automobile(24);
myBmw.fill(20);
myBmw.takeTrip(100);
myBmw.reportFuel();
}
到
public class Tester {
Automobile myBmw = new Automobile(24);
public Tester(){
myBmw.fill(20);
myBmw.takeTrip(100);
myBmw.reportFuel();
}
}
或将其置于Tester类或静态{}块中的另一个方法中(您还需要将Automobile实例声明为静态)
答案 4 :(得分:0)
你应该使用主类,我已经执行你的代码,并且当我们使用主类
时它运行正常public class Tester {
public static void main(String[] args) {
Automobile myBmw = new Automobile(24);
myBmw.fill(20);
myBmw.takeTrip(100);
myBmw.reportFuel();
}
}
如果你不想使用main(),那么你应该使用它的方法
public void testME() {
Automobile myBmw = new Automobile(24);
myBmw.fill(20.0);
myBmw.takeTrip(100);
myBmw.reportFuel();
}
答案 5 :(得分:0)
您没有在测试人员类中提供main方法,以免出错。
public class Tester {
public static void main(String args[]){ // main method required.
Automobile myBmw = new Automobile(24);
myBmw.fill(20);
myBmw.takeTrip(100);
myBmw.reportFuel();
}
}