我在简短的代码中不断出错。我不确定有什么问题,你可以帮帮我吗?
代码:
import java.util.Scanner;
public class Driver {
private int age, carValue, tickets;
public getInfo(){
Scanner in = new Scanner(System.in);
System.out.println("Enter Age: ");
age = in.nextInt();
System.out.println("Enter Car Value: ");
carValue = in.nextInt();
System.out.println("Enter the number of tickets you have: ");
tickets = in.nextInt();
}
}
这是我的主要内容:
class Main
{ public static void main(String args[])
{
Driver john;
john = new Driver();
john.getInfo();
}
}
我的错误是:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The method getInfo() is undefined for the type Driver
at Main.main(Main.java:6)
好的,我现在已经更新了,但仍然会出错。
答案 0 :(得分:10)
你必须放置代码:
Scanner in = new Scanner(System.in);
System.out.println("Enter Age: ");
age = in.nextInt();
在某种方法或构造函数中。
答案 1 :(得分:2)
尝试:
public class Driver {
private int age, carValue, tickets;
Scanner in;
public Driver()
{
this.in = new Scanner(System.in);
System.out.println("Enter Age: ");
this.age = in.nextInt();
}
}
答案 2 :(得分:2)
您的getInfo
方法声明不完整 - 它需要返回类型。请改为public void getInfo()
。
答案 3 :(得分:1)
class Main
{
public static void main(String args[])
{
Driver john;
john = new Driver();
}
}
应该看起来像这样,你不需要两个类,它只会使事情变得复杂,并且违反高内聚和松散耦合的原则。
class Driver
{
private int age;
private int carValue;
private int tickets;
public void setAge(final int age)
{
this.age = age;
}
public static void main(final String args[])
{
final Driver john = new Driver();
final Scanner in = new Scanner(System.in);
System.out.println("Enter Age: ");
john.setAge(in.nextInt());
}
}
答案 4 :(得分:0)
仔细看看Reteif的回答。你原来的代码很棒!!您只需将返回类型'void'添加到getinfo()。
在您发布的代码中,您将getInfo声明为这样。
public getInfo(){
//code stuff
}
什么时候应该是这样的:
public void getInfo(){
//code stuff
}
我已经使用这个小修补程序编译了你发布的代码,它运行正常。 :)