我刚刚开始学习Java和vsc。 我搜索并发现所有具有“未解决的编译问题:”的问题。 但是我找不到我的问题。
这是我的错误消息:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
name cannot be resolved or is not a field
at Student.<init>(Student.java:10)
at ShowTrans.main(ShowTrans.java:3)
我安装了所有扩展,调试程序。
Student class
public class Student {
String studentName;
int money;
public Student() {
}
public Student(String name, int money) {
this.name = studentName;
this.money = money;
}
public void takeBus(Bus bus) {
bus.take(1000);
money -= 1000;
}
public void takeSubway(Subway subway) {
subway.take(1500);
money -= 1500;
}
public void showInfo() {
System.out.println(studentName + "left money : " + money");
}
}
公交车类
public class Bus {
int money;
int busNumber;
int passenger = 0;
public Bus() {
}
public Bus(int num) {
this.num = busNumber;
}
public void take(int money) {
this.money += money;
passenger++;
}
public void showInfo() {
System.out.println("Bus" + busNumber + "'s passenger is" + passenger + ", money is" + money");
}}
ShowTrans class
public class ShowTrans {
public static void main(String[] args) {
Student james = new Student("James", 10000);
Bus bus100 = new Bus(100);
james.takeBus(bus100);
james.showInfo();
bus100.showInfo();
}}
答案 0 :(得分:2)
我刚刚开始学习Java和vsc。我aleardy搜索并看到所有包含
的问题Unresolved compilation problem
这意味着:最有可能的是,尽管IDE向您显示了编译错误,但您还是单击了IDE中的 run 按钮。
在您的情况下,有一个简单的错字:您很可能将名为name
的名称重命名为studentName
。
确切地说:您在这里倒退了:
this.name = studentName;
应该是
this.studentName = name;
因此,再次:您要求您的IDE运行(由于某些更改)不一致的代码。
解决方案:
除此之外,学习使用IDE的功能。例如,可能有一个重构代码的功能。其中包括:重命名字段。这样,当您在一个地方更改名称时,该名称的所有用法都会自动更新。